Author |
Message
|
nhanks |
Posted: Wed Apr 21, 2004 4:20 pm Post subject: Not able to call Oracle stored proc |
|
|
Novice
Joined: 18 Dec 2001 Posts: 13
|
I am having trouble calling simple Oracle Stored Proc.
from ESQL in Database Node
CALL MyProc('world');
CREATE PROCEDURE MyProc(IN in_var CHARACTER) EXTERNAL NAME MyProc;
Oracle sp looks like:
create or replace procedure MyProc(in_var in varchar2)
IS
test_var varchar2(5);
BEGIN
test_var :='hello';
END;
I am using the DataDirect driver for Oracle, have executed mqsisetdbparms correctly, and am logging in with the schema that the above proc is defined in.
Any help would be appreciated.
The following is my ExceptionList from Trace Node:
( WBRK_BROKER.WBIMB ) Error message 'DB Node Error: (
(0x01000000):RecoverableException = (
(0x03000000):File = 'F:\build\S000_P\src\DataFlowEngine\ImbDataFlowNode.cpp'
(0x03000000):Line = 558
(0x03000000):Function = 'ImbDataFlowNode::createExceptionList'
(0x03000000):Type = 'ComIbmDatabaseNode'
(0x03000000):Name = 'TestFlow#FCMComposite_1_5'
(0x03000000):Label = 'TestFlow.APT_Database'
(0x03000000):Text = 'Node throwing exception'
(0x03000000):Catalog = 'BIPv500'
(0x03000000):Severity = 3
(0x03000000):Number = 2230
(0x01000000):DatabaseException = (
(0x03000000):File = 'F:\build\S000_P\src\DataFlowEngine\ImbOdbc.cpp'
(0x03000000):Line = 181
(0x03000000):Function = 'ImbOdbcHandle::checkRcInner'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Text = 'Root SQL exception'
(0x03000000):Catalog = 'BIPv500'
(0x03000000):Severity = 3
(0x03000000):Number = 2321
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '-1'
)
(0x01000000):DatabaseException = (
(0x03000000):File = 'F:\build\S000_P\src\DataFlowEngine\ImbOdbc.cpp'
(0x03000000):Line = 296
(0x03000000):Function = 'ImbOdbcHandle::checkRcInner'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Text = 'Child SQL exception'
(0x03000000):Catalog = 'BIPv500'
(0x03000000):Severity = 3
(0x03000000):Number = 2322
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '28000'
)
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '1017'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '[DataDirect][ODBC Oracle driver][Oracle]ORA-0'
)
)
)
)
)
' from trace node 'TestFlow.Trace1'.
The trace node 'TestFlow.Trace1' has output the specified error message.
This is an error message provided by the message flow designer. The user response will be determined by the local environment. |
|
Back to top |
|
 |
JT |
Posted: Wed Apr 21, 2004 7:25 pm Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
What was the ORA-xxxxx native sqlcode that resulted from the call of your stored procedure? |
|
Back to top |
|
 |
nhanks |
Posted: Wed Apr 21, 2004 7:30 pm Post subject: |
|
|
Novice
Joined: 18 Dec 2001 Posts: 13
|
The best I can tell it was ORA-0, since that is what is one of the last lines in the ExceptionList ouput. |
|
Back to top |
|
 |
JT |
Posted: Thu Apr 22, 2004 5:36 am Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
Can you debug the flow or put on a debug trace to determine the native error sqlcode? "ORA-0" is not a valid ORACLE sqlcode. |
|
Back to top |
|
 |
nhanks |
Posted: Fri Apr 23, 2004 12:11 pm Post subject: |
|
|
Novice
Joined: 18 Dec 2001 Posts: 13
|
Sorry for the delay - got sidetracked.
Here is what is coming from my debug trace when I do a simple select statement:
2004-04-23 15:08:23.507972 3484 UserTrace BIP2231E: Error detected whilst processing a message 'TestFlow.APT_Database'.
The message broker detected an error whilst processing a message in node 'TestFlow.APT_Database'. The message has been augmented with an exception list and has been propagated to the node's failure terminal for further processing.
See the following messages for details of the error.
2004-04-23 15:08:23.508092 3484 DatabaseException BIP2321E: Database error: ODBC return code '-1'.
The message broker encountered an error whilst executing a database operation. The ODBC return code was '-1'. See the following messages for information obtained from the database pertaining to this error.
Use the following messages to determine the cause of the error. This is likely to be such things as incorrect datasource or table names. Then correct either the database or message broker configuration.
2004-04-23 15:08:23.508157 3484 DatabaseException BIP2322E: Database error: SQL State '28000'; Native Error Code '1017'; Error Text '[DataDirect][ODBC Oracle driver][Oracle]ORA-0'.
The error has the following diagnostic information: SQL State '28000' SQL Native Error Code '1017' SQL Error Text '[DataDirect][ODBC Oracle driver][Oracle]ORA-0'
This message may be accompanied by other messages describing the effect on the message broker itself. Use the reason identified in this message with the accompanying messages to determine the cause of the error. |
|
Back to top |
|
 |
nhanks |
Posted: Sat Apr 24, 2004 7:57 pm Post subject: |
|
|
Novice
Joined: 18 Dec 2001 Posts: 13
|
Ok, I got it to work, but I had to remove the mqsisetdbparms entry for connecting with an id separate from the one the broker runs under and create a userid on Oracle for the Broker user id. When I did this everything works correctly.
I have CSD02 applied to MBIMB 5 - is this a bug addressed with CSD03? |
|
Back to top |
|
 |
JT |
Posted: Mon Apr 26, 2004 7:16 am Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
I don't believe this is a bug as we access many user databases using Oracle stored procedures and functions, with the appropriate user database ids & passwords.
Quote: |
2004-04-23 15:08:23.508157 3484 DatabaseException BIP2322E: Database error: SQL State '28000'; Native Error Code '1017'; Error Text '[DataDirect][ODBC Oracle driver][Oracle]ORA-0'. |
Your problem, as identified by the SqlNativeError of "1017", points to an "Invalid username/password". I ran into this error sometime ago from our Solaris brokers and discovered that some password values ($) were invalid. Enclosing the password in quotes, on the mqsisetdbparms command, worked. |
|
Back to top |
|
 |
nhanks |
Posted: Mon Apr 26, 2004 8:07 am Post subject: |
|
|
Novice
Joined: 18 Dec 2001 Posts: 13
|
Thanks for the info JT.
Another poster sent me a PM saying that they fixed the "problem" by changing the password to less than 6 characters since, and supposedly this was addressed with CSD03, which I have not applied yet. |
|
Back to top |
|
 |
|