<cftransaction> seems to cause "Invalid arguments incall"

Ask a Question related to Coldfusion Database Access, Design and Development.

  1. #1

    Default <cftransaction> seems to cause "Invalid arguments incall"

    Hi,

    Our environment:


    ColdFusion MX 6.1 J2EE on Tomcat 5.0.28 on Solaris 8 64-bit
    Oracle 9.2.0.7 on Solaris 8 64-bit
    Oracle Thin JDBC driver

    Here's my problem:

    Our data sources are set up without a username and password defined in the
    administrator. Our developers use the username and password attributes of the
    <cfquery> tag to pass through the login credentials. No problem there. However,
    when one or more queries are enclosed within a <cftransaction> tag pair, the
    queries run fine, and the transactional behaviour is correct, but the following
    message gets written to the application.log.

    "Warning","TP-Processor34","10/07/05","14:45:19",,"invalid arguments in call"

    (When using the Oracle Thin JDBC driver, this message usually indicates that a
    username and/or password were not passed to the database when trying to make a
    connection).

    The same set of queries, when executed without the <cftransaction> tags again
    run fine (albeit without the transactional functionality), but no message
    appears in the application.log.

    Has anyone else experienced this type of behaviour? It's not causing runtime
    issues, the applications in question run fine. However, because we make
    extensive use of <cftransaction> tags in many of our applications, the
    application.log file is growing at an alarming rate, and makes it difficult to
    spot other legitimate problems in the log.

    All I can think is that the <cftransaction> tag is trying to open a connection
    to the DB using the data source name from one of the queries within, but is not
    passing the credentials though. But the transactional behaviour in the script
    functions correctly!

    Does anyone have any thoughts about where the issue could lie? ColdFusion?
    Tomcat? Java? Oracle? I'm pretty much at a loss on this one.

    Any comments/advice gratefully received (especially from Macromedia on how
    <cftransaction> is trying to work under the hood).

    Regards,

    Mike.

    MC Tunes Guest

  2. Similar Questions and Discussions

    1. Runtime error "no row at position 0" when trying to access WebMethod arguments
      Hi, I have a curious problem. I have a WebService with one method that requieres some arguments (basicaly strings, ints, longs and a...
    2. #24921 [Fbk->Csd]: calling function with "Class Type Hints" arguments crashes PHP
      ID: 24921 User updated by: itotakas at msu dot edu Reported By: itotakas at msu dot edu -Status: Feedback +Status: ...
    3. #24921 [Fbk->Opn]: calling function with "Class Type Hints" arguments crashes PHP
      ID: 24921 User updated by: itotakas at msu dot edu Reported By: itotakas at msu dot edu -Status: Feedback +Status: ...
    4. #24921 [Csd->Opn]: calling function with "Class Type Hints" arguments crashes PHP
      ID: 24921 User updated by: itotakas at msu dot edu Reported By: itotakas at msu dot edu -Status: Closed +Status: ...
    5. "Arguments are of the wrong type, out of acceptable range" error
      I'm getting an "Arguments are of the wrong type, out of acceptable range, in conflicts with each other " error , pointing to the sql statement in...
  3. #2

    Default Re: <cftransaction> seems to cause "Invalid arguments incall"

    This is a known "bug". Below is a warning message from our internal Production
    Support Code Guidelines that restricts the use of CFTRANSACTION for our
    company's intranet sites:

    Use of CFTRANSACTION on Cold Fusion MX Servers is restricted

    CFTRANSACTION on Cold Fusion MX has changed in that it requires hard coded
    username and password in order to work.

    Hard coding username/passwords in a datasource is not an option.
    This presents security risks such that anyone can access your datasource with
    full reign.
    In addition, we have created a single datasource per server policy.
    By using a single shared datasource it is obviously not feasible to hard code
    the username and password.

    Please note that this bug may not generate a run time error to the end user.
    Instead, in all cases we have tested the template executes successfully, but
    an error/warning is logged in the ColdFusion Application.log.

    Phil

    paross1 Guest

  4. #3

    Default Re: <cftransaction> seems to cause "Invalid arguments incall"

    Hi Phil,

    Many thanks for this infirmation. This explains the behaviour we are seeing
    exactly.

    Just out of interest, do you have any information about the exact sequence of
    events <cftransaction> is trying to execute under the hood? If there is any
    documentation about this bug that is publicly available, I'd love to see it.

    Thanks again,

    Mike.

    MC Tunes Guest

  5. #4

    Default Re: <cftransaction> seems to cause "Invalid arguments incall"

    This is just a guess, but I would imagine that all DML between cftransaction
    tags is guaranteed to be within the same session in order to prevent an
    auto-commit when your session ends, etc.

    This [url]http://www.macromedia.com/devnet/coldfusion/articles/cftransaction.html[/url]
    explains the use of transactions and MX.

    My biggest concern is that Macromedia probably doesn't consider this a "bug",
    but I feel that it is a major oversight, as I believe that this tag should have
    the same datasource, username, and password attributes that are included in the
    cfquery and cfstoredproc tags. I have seen no documentation from Macromedia or
    elsewhere that explains why this is not necessary.

    Phil

    paross1 Guest

  6. #5

    Default Re: <cftransaction> seems to cause "Invalid arguments incall"

    Hi Phil,
    >> This is just a guess, but I would imagine that all DML between
    >> cftransaction tags is guaranteed to be within the same session
    >> in order to prevent an auto-commit when your session ends, etc.
    Indeed. What I'd really like to get at is the underlying Java code
    generated by ColdFusion. That would help no end to see what CF is
    actually trying to do, and why the message in the log appears.
    >> This Tech Note explains the use of transactions and MX.
    Hmm. I've seen this before, back in the days of CF4.5 - 5. Doesn't
    really offer any insight, does it?
    >> My biggest concern is that Macromedia probably doesn't consider
    >> this a "bug", but I feel that it is a major oversight, as I believe that
    this
    >> tag should have the same datasource, username, and password
    >> attributes that are included in the cfquery and cfstoredproc tags.
    I agree 100%
    >> I have seen no documentation from Macromedia or elsewhere that
    >> explains why this is not necessary.
    I'm guessing that it looks for the datasource, username and password
    values from the first <cfquery> tag within the transaction block, then
    opens up a connection using those, but that doesn't explain why the
    message gets written to the application.log. A sample of the generated
    Java code really would help here.

    MACROMEDIA: HOW ABOUT AN EXPLANATION OF THE <CFTRANSACTION> INTERNALS OF
    COLDFUSION?

    I think I'm going to raise this with Support, see what sort of response
    I can get.

    Living in hope.

    Mike.

    MC Tunes Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139