JDBC Receiver Adapter to connect to oracle
Hi all,
We are configuring communication channel for receiver JDBC Adapter to connect to oracle dataabase. The status is red in the Adapter monitor and it says that
"Receiver Adapter v1027 for Party '', Service 'MQ':
Configured at 23:31:45 2006-12-12
Processing Error: Accessing database connection 'jdbc:odbc://172.20.36.170:1521;DatabaseName=RTPOC failed: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Addtional information: JDBC driver 'oracle.jdbc.driver.OracleDriver' loaded successfully, additional driver information:
Available JDBC drivers:
oracle.jdbc.driver.OracleDriver, 1.0 JDBC compliant
sun.jdbc.odbc.JdbcOdbcDriver, 2.1 JDBC compliant
I guess there is some error in the connection url....could someone give us the exact syntax of Connection url.
Regards
Hi all,
someone please clarify me. I have a datasource called "OracleDSN" in system 172.20.36.239 which has oracle client(RTPOC) in it.
So i gave my connection url as
jdbc:odbc:OracleDSN:@172.20.36.239:1521:RTPOC.
it still says that datasource name is too long..
Please help us out.
Regards
Similar Messages
-
How to modify oracle stored procedure for JDBC Receiver Adapter?
Hi all.
This is Urgent.
Scenario is
SELECT a TABLE with procedure and update column with it,
then send data to SAP System with RFC Adapter.
When I executed a sync bpm, scenario was finished internal error.
Pls, let me know how to correct procedure using JDBC Receiver Adapter?
Regrds all.
Procedure Code -
SET SERVEROUTPUT ON
CREATE OR REPLACE PROCEDURE zwtn2
IS
v_seller_company wtnivhd.seller_company%TYPE;
v_invoice_no wtnivhd.invoice_no%TYPE;
v_report_date wtnivhd.report_date%TYPE;
v_customs_date wtnivhd.customs_date%TYPE;
v_ap_post_date wtnivhd.ap_post_date%TYPE;
v_gr_date wtnivhd.gr_date%TYPE;
CURSOR l_cursor IS
SELECT seller_company,
invoice_no,
report_date,
customs_date,
ap_post_date,
gr_date
FROM wtnivhd
WHERE wtn_send_flag = 'N'
AND rownum < 31
FOR UPDATE;
BEGIN
OPEN l_cursor;
LOOP
FETCH l_cursor
INTO v_seller_company,
v_invoice_no,
v_report_date,
v_customs_date,
v_ap_post_date,
v_gr_date;
EXIT WHEN l_cursor%NOTFOUND;
UPDATE wtnivhd
SET wtn_send_flag = 'Y'
WHERE CURRENT OF l_cursor;
END LOOP;
CLOSE l_cursor;
END zwtn2;Hi Alex,
plz have a look to Runtime Workbench / Adapter Monitoring to find an error message.
Regards,
Udo -
JDBC receiver adapter: Insert of CLOB into Oracle DB
Hi,
I've got a short question:
Is it possible to insert CLOB fields (larger than 4kB) into an Orcale database using the JDBC receiver adapter without using a stored procedure?
We are on XI 3.0 SP20.
I had someting in mind that this is only possible with a stored procedure but I am not sure on this.
Thanks and Regards,
HelmutHI,
Is it possible to insert CLOB fields (larger than 4kB) into an Orcale database using the JDBC receiver adapter without using a stored procedure?
yes, you can do it but it is not a best practise, but using Stored Procedure is .
Regards,
karna... -
JDBC Receiver Adapter -- Synch Select. ERROR
Hello,
We have implemented the scenario described by Bhavesh Kantilal in blog 3928:
JDBC Receiver Adapter -- Synchronous Select Step by Step
/people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-150-step-by-step
but modified to our requirements.
An Idoc is coming in, mapped to a sync receiver jdbc as described to collect data from a jdbc table.
Result when connecting the oracle database with the jdbc receiver adapter:
Error processing request in sax parser: Error when executing statement for table/stored proc. 'T_ST_MAINDRIVER' (structure 'STATEMENT'): java.sql.SQLException: ORA-00942: table or view does not exist
Oh, like to complete the information by the payload from the jdbc rec. connect:
<?xml version="1.0" encoding="UTF-8" ?>
- <ns0:MT_JDBC_LOOPUP_ID xmlns:ns0="http://www.xxx.org/excel">
- <STATEMENT>
- <TABLENAME ACTION="SELECT">
<TABLE>T_ST_MAINDRIVER</TABLE>
<ACCESS />
- <KEY>
<MAINDRIVER compareOperation="=">Optomechanical</MAINDRIVER>
</KEY>
</TABLENAME>
</STATEMENT>
</ns0:MT_JDBC_LOOPUP_ID>
The table exists on the database. So, what is our mistake? Do you have any ideas?
Best regards
Dirk
Message was edited by:
Dirk Meinhard
Message was edited by:
Dirk MeinhardHi Anil,
I am back on my JDBC problem and I am one step further!
Thank you for this hint. Looks like this is the solution.
So I like to add my next question !
My new error is resulting from my query command.
I have set "=" to find a specific entry as compare operation.
Error when executing statement for table/stored proc. 'IRIS.T_ST_MAINDRIVER' (structure 'STATEMENT'): java.sql.SQLException: FATAL ERROR document format in structure 'TABLENAME': unexpected value '=' for attribute 'compare' found
Looks like this is not ok .
This is my xml of this query:
<ns0:MT_JDBC_LOOPUP_ID xmlns:ns0="http://www.xxx.org/excel">
<STATEMENT>
<TABLENAME ACTION="SELECT">
<TABLE>IRIS.T_ST_MAINDRIVER</TABLE>
<ACCESS/>
<KEY>
<MAINDRIVER compareOperation="=">Optomechanical</MAINDRIVER>
</KEY>
</TABLENAME>
</STATEMENT>
</ns0:MT_JDBC_LOOPUP_ID>
Can you, or anybody else, give the helping idea?
regards
Dirk -
Hi
I am trying insert rows in Oracle database using JDBC receiver adapter setup in PI 7.1. However this receiver adapter is throwing following exception.
Delivering the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'PRADEEP_OTC_ORDERS' (structure 'statement'): java.sql.SQLException: ORA-00904: "BATCH_ID": invalid identifier .
<?xml version="1.0" encoding="UTF-8" ?>
<ns0:mt_sql_writer xmlns:ns0="http://rdbms_poc">
<statement>
<dbtablename action="INSERT">
<table>PRADEEP_OTC_ORDERS</table>
<access>
<order_id>19126</order_id>
<version>1</version>
<batch_id>132</batch_id>
</access>
</dbtablename>
</statement>
</ns0:mt_sql_writer>
PRADEEP_OTC_ORDERS table has just 3 columns as specified the access segment. However I stil get this ORA-00904 error message.
Any idea on what could be wrong.?
Thanks
-PradeepHi All,
Thanks a lot for responding...
I verified the table structure, table just contains those 3 coulms all varchar type.
I modified the column name as well, But was still getting ORA-00904. Then I went directly to the the database and executed below insert statement,
insert into PRADEEP_OTC_ORDERS (mps_order_id, mps_version,mps_batch_id) Values(1,2,3)
I got exact SQL Error: ORA-00904: "MPS_BATCH_ID": invalid identifier.
So ISAP JDBC adapter is not enclosing the string values in quotes.
SAP documentation says it puts quotes for values and treats everything as string(text).
Anybody has any idea, why JDBC receiver adapter not enclosing the values in quotes?
Thanks
-Pradeep -
Issue with processing time of JDBC receiver adapter
Hi all,
We are using PI 7.1 EHP1.
We have an issue with JDBC receiver adapter taking too much time to process messages.
We are using XML SQL format message protocol with INSERT_UPDATE as the document format.
Each message can contain multiple records, i.e. 1 single message can result in many updates/inserts.
Currently, time taken to process in 6-12 secs which is quite high considering the messages are not very large in size.
We sent the statements to Oracle DBA to see if anything about the queries being used is causing issues. Awaiting inputs.
In the mean time, wanted to check if there is anything that can be done from PI side that will help us improving the processing time.
Thanks in Advance,
Sailaja.Hi,
i think the main cause is query taking long time to execute in DataBase.
-> increase the read time and response time in the JDBC receiver adapter.
In the advanced mode table section of sender channel and receiver channel configurations, we can set driver properties for each DB connection. Any such property would have to contain prefix 'driver:'(with out quotes).
For Oracle Database JDBC thin driver 10.2.0.3 version, the property oracle.jdbc.ReadTimeout helps to set read timeout while reading from the socket. Also for setting login time out in Oracle, we use oracle.net.CONNECT_TIMEOUT. To set these two properties use as follows: driver:oracle.jdbc.ReadTimeout 1000 driver:oracle.net.CONNECT_TIMEOUT 1000 The TimeOut Driver properties like ReadTimeout and CONNECT_TIMEOUT are in milliseconds.
Refer note 1078420 for more details
please go through this blog i hope it will help you.
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/c059d583-a551-2c10-e095-eb5d95e03747
regards,
ganesh
Edited by: ganesh.nijampudi on Oct 25, 2011 12:00 PM -
JDBC Receiver Adapter Error with SAPClassNotFoundException
HI Friends,
I have configured the JDBC Receiver Adapter with parameters as
Driver: oracle.jdbc.driver.OracleDriver
Connection: jdbc:oracle:thin:@10.15.96.29:1525:RMOSDB
XI 700, Oracle DB 10.2
I have installed JDBC driver for Oracle as guide How Install and Configure External Drivers for the JDBC & JMS Adapters.pdf. I can see file ojdbc14.jar at D:\usr\sap\<SID>\DVEBMGSNN\j2ee\cluster\server0\bin\ext\com.sap.aii.af.jmsproviderlib.
But Im still getting an error SAPClassNotFoundException as following:
#XI AF com.sap.aii.adapter.jdbc.XI2JDBC@1497c21##0#0#Error#1#com.sap.aii.adapter.jdbc.XI2JDBC#Plain###Accessing database connection 'jdbc:oracle:thin:@10.15.96.29:1525:RMOSDB' failed: com.sap.aii.adapter.jdbc.sql.DriverManagerException: Cannot establish connection to URL 'jdbc:oracle:thin:@10.15.96.29:1525:RMOSDB': SAPClassNotFoundException: oracle.jdbc.driver.Oracledriver#
#XI AF com.sap.aii.adapter.jdbc.XI2JDBC@1497c21##0#0#Error#1#com.sap.aii.adapter.jdbc.XI2JDBC#Plain###JDBC_ERR_207#
#Error#1#com.sap.aii.adapter.jdbc.XI2JDBC#Plain###Accessing database connection 'jdbc:oracle:thin:@10.15.96.29:1525:RMOSDB' failed: com.sap.aii.adapter.jdbc.sql.DriverManagerException: Cannot establish connection to URL 'jdbc:oracle:thin:@10.15.96.29:1525:RMOSDB': SAPClassNotFoundException: oracle.jdbc.driver.Oracledriver#
I tried to install JDBC driver again but it was not solve this problem.
Please suggest!
Regards,
CuongHI Cuong,
It seems something wrong with the installation of JDBC driver or in the config parameters for Adapter.
Not sure if driver is case sensitive.
But from the log it shows "oracle.jdbc.driver.Oracledriver".
Try putting "oracle.jdbc.driver.OracleDriver".
regards,
Pinkle -
Hi all,
I want to insert data into two tables and want to get data from one of those tables(using SELECT in the attribute 'action') after they are inserted with the data.
So how should be my receiver jdbc datatype structure.
Can anybody please tell me?
Thanks & Regards
Radhika.Check this blog for Synhronous select of data froma Database,
/people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-150-step-by-step
/people/jegathees.waran/blog/2007/03/02/oracle-table-functions-and-jdbc-sender-adapter
Please see the below URL for logic.
http://www.flickr.com/photos/8764045@N06/549186611/
http://www.flickr.com/photos/8764045@N06/549186651/
hope it will help u .. -
Hi All,
I am executing SP by using JDBC Receiver Adapter.
My strcture is follows
<STATEMENT2>
<SP_CREATE_T_BATCH action="EXECUTE">
<spName type="VARCHAR">SP_CREATE_T_BATCH</spName>
<IN_Control_Recipe hasQuot="No" type="Integer">100000000001723850</IN_Control_Recipe>
</SP_CREATE_T_BATCH>
</STATEMENT2>
The below error I am getting
Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'SP_CREATE_T_BATCH' (structure 'STATEMENT2'): java.lang.NumberFormatException: For input string: "100000000001723850"
Any help on thisHi Ram,
Since you mentioned that your SP has one input parameter and one output parameter, the structure of the XML message at the JDBC receiver side should be:
<STATEMENT2>
<SP_CREATE_T_BATCH action="EXECUTE">
<IN_Control_Recipe isInput="true" hasQuot="No" type="BIGINT">100000000001723850</IN_Control_Recipe>
<Output_Parameter isOutput="true" type="SQLDataType"></Output_Parameter>
</SP_CREATE_T_BATCH>
</STATEMENT2>
Here, i have assumed the following:
SP_CREATE_T_BATCH - The name of the Stored Procedure to be executed
IN_Control_Recipe - Input parameter of the SP and its SQLDataType is BIGINT as suggested by Stefan.
Output_Parameter - Output parameter of the SP. You may enter the SQL data type as per the output of your Stored Procedure.
The following SQL data types are supported:
INTEGER, BIT, TINYINT, SMALLINT, BIGINT, FLOAT, REAL, DOUBLE, NUMERIC, DECIMAL, CHAR, VARCHAR, STRING, LONGVARCHAR, DATE, TIME, TIMESTAMP, BINARY, VARBINARY, LONGVARBINARY, BLOB (input and output),CLOB (input and output), CURSOR (output; only in conjunction with the Oracle JDBC driver).
Hope this will surely solve your problem.
Regards, Gaurav. -
JDBC Receiver Adapter - Call Stored Procedure
Hi,
I am using a JDBC receiver adapter to call a stored procedure in oracle.
My target structure looks like:-
<STATEMENT>
<storedProcedureName action="EXECUTE">
<table>realStoredProcedureName</table>
<serialDate hasQuot="NO" isInputType="true" type="date">TO_DATE('07-15-2008 08:00:11','MM-DD-YYYY HH24:MI:SS')</serialDate>
<serialNo isInputType="true" type="NUMERIC">123456</serialNo>
</storedProcedureName>
</STATEMENT>
The storedprocedure takes two input values and has one output value.
The first parameter of the stored procedure is serialDate and the second input parameter is serialNo.
I am getting an exception:-
<SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'storedProcedureName' (structure 'STATEMENT'): java.lang.NumberFormatException: For input string: "TO_DATE('07"</SAP:AdditionalText>
Any ideas how to fix this issue.
Thanks.
KrishnanHi Krishnan,
<STATEMENT>
<storedProcedureName action="EXECUTE">
<table>realStoredProcedureName</table>
<serialDate hasQuot="NO" isInputType="true" type="date">TO_DATE('07-15-2008 08:00:11','MM-DD-YYYY HH24:MI:SS')</serialDate>
<serialNo isInputType="true" type="NUMERIC">123456</serialNo>
</storedProcedureName>
</STATEMENT>
The storedprocedure takes two input values and has one output value.
The first parameter of the stored procedure is serialDate and the second input parameter is serialNo.
I am getting an exception:-
<SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'storedProcedureName' (structure 'STATEMENT'): java.lang.NumberFormatException: For input string: "TO_DATE('07"</SAP:AdditionalText>
In the XML structure you cannot use TO_DATE function . Please pass the DATE in the correct format which the Stored procedure can accept . Get the out put what you expected from TO_DATE function and use that value in the structure.
Regards,
Kishore -
JDBC receiver adapter for AS400-query time out due to Escape Symbol
Hello,
I am uisng JDBC receiver adapter for AS 400, When I execute query, the query needs to have arguments in the open and close single ticks (' 12345' )
My XML pay load looks like this, which is RFC sender. Look at dcudcstmr in <i><b>(' 838912')</b></i>. When receiver gets this message the ' (single quotes are disappeared.
<?xml version="1.0" encoding="UTF-8" ?>
- <ns1:MT_Cma_Customer_Select_Request xmlns:ns1="http://freemanco.com/xi/Get_Customer">
- <Statement>
- <LawsonCustomer action="SQL_QUERY">
<access>select f1.DACMCMPNY from sap.sapcustvew f1, sap.sapcustvew f2 where f2.dcudcstmr in <i><b>(' 838912')</b></i> and (f1.dcudcstmr=f2.dcudcstmr or f2.komaster=f1.dcudcstmr)</access>
</LawsonCustomer>
</Statement>
</ns1:MT_Cma_Customer_Select_Request>
On the Receiver JDBC adapter I have tried with different combinations of Escape Symbol for Aposrophe as follows
<b> \
'</b>
As you know this is related to epcape character, I get following error all the time. Looks like the query is not able to execute in the specified time. My question is how do I get single quote as part of query.
<b>select f1.DACMCMPNY from sap.sapcustvew f1, sap.sapcustvew f2 where f2.dcudcstmr in ( 100001) and (f1.dcudcstmr=f2.dcudcstmr or f2.komaster=f1.dcudcstmr) 2007-09-20 15:56:42 Error Unable to execute statement for table or stored procedure. 'LawsonCustomer' (Structure 'Statement') due to java.sql.SQLException:
[SQL0666] Estimated query processing time 13766 exceeds limit 8000. 2007-09-20 15:56:42 Error MP: exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'LawsonCustomer' (structure 'Statement'): java.sql.SQLException:
[SQL0666] Estimated query processing time 13766 exceeds limit 8000. 2007-09-20 15:56:42 Error Exception caught by adapter framework: Error processing request in sax parser: Error when executing statement for table/stored proc. 'LawsonCustomer' (structure 'Statement'): java.sql.SQLException:
[SQL0666] Estimated query processing time 13766 exceeds limit 8000. 2007-09-20 15:56:42 Error Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'LawsonCustomer' (structure 'Statement'): java.sql.SQLException:
[SQL0666] Estimated query processing time 13766 exceeds limit 8000.. Setting message to status failed. 2007-09-20 15:56:42 Error The message status set to FAIL. 2007-09-20 15:56:42 Error Returning synchronous error message to calling application: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'LawsonCustomer' (structure 'Statement'): java.sql.SQLException:
[SQL0666] Estimated query processing time 13766 exceeds limit 8000</b>
Any feedback or helpfull tips appreciated.
Thank you,
BalajiRaj,
Thank you for the reponse. I am using UDF on sender to generate sql statement as you see in sender XML message. After the message reaching receiver, gets executed but no response from AS400 becasue of missing single quotes in the sql query executed.
Sender XML sends
<access>select f1.DACMCMPNY from sap.sapcustvew f1, sap.sapcustvew f2 where f2.dcudcstmr in <u><b>(' 838912')</b></u> and (f1.dcudcstmr=f2.dcudcstmr or f2.komaster=f1.dcudcstmr)</access>
Receiver executes as
select f1.DACMCMPNY from sap.sapcustvew f1, sap.sapcustvew f2 where f2.dcudcstmr in ( <b><u>838912</u></b>) and (f1.dcudcstmr=f2.dcudcstmr or f2.komaster=f1.dcudcstmr)
As you see the single quotes are missing. Like I said in previous posting I tried with following Escape Symbol for Aposrophe.
Let me know if you need more information.
Thank you,
Balaji -
A wierd error of JDBC Receiver adapter
Dear Expert,
I got stuck by the JDBC receiver adapter with PI 7.11, the log is
'JDBC Message processing failed, due to Error processing request in sax parser: Error when executing statement for table/stored proc. 'null' (structure 'SYSTEM'): java.lang.IndexOutOfBoundsException: Index: 1, Size: 1'
explanation :
(1)SYSTEM is the first element in my XML sent to PI and I guarantee it has value, and there is no mapping with this field in the target table.
(2)I tested mapping and comminucation channel -> successfully
(3)db is oracle and the key field is mapped with value
Looking forward to your insight. Thanks very very much
RayDear Expert :
Thanks for your reply, but I still could not figure out what had happened, it is so desperate.......
Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'null' (structure 'BOOK'): java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
The Oracle DB table has many fields and I mapped the key and other fields which could not be null.
I tried to create a very simple example to test like this , but still it pops up the error like before,
you can see the error message just replaces the text 'SYSTEM' to 'BOOK'.
'null' (structure 'SYSTEM'): (yesterday) -> 'null' (structure 'BOOK'): (today). What could I do????
Thanks so much for your help
<?xml version="1.0" encoding="UTF-8" ?>
<MT_RM_TEST>
<BOOK>17-1627-15</BOOK>
<NAME>Ray</NAME>
</MT_RM_TEST>
-> the XML above is my simple test XML sent (book and name are mapped to the key field and other fields which could not be nulll) -
Store procedure in JDBC Receiver adapter
Hi,
I am calling stored procedure using jdbc reeciver adapter . showing below error. In oracle database it is under functions not in the procedure. functions and stored procedure are same? is it should be create under procedure?
error message:
Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'GET_ALL_SALESREPINFO' (structure 'statement'): java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00221: 'GET_ALL_SALESREPINFO' is not a procedure or is undefined ORA-06550: line 1, column 7: PL/SQL: Statement ignored
Sql query:
<?xml version="1.0" encoding="UTF-8"?>
<ns1:TerritoriesAndSalesRepsRequest xmlns:ns1="http://allergan.com/TerritoriesAndSalesRepsServiceList/1.0">
<statement><GET_ALL_SALESREPINFO action="EXECUTE">
<P_REP_LOGIN isInput="1" type="VARCHAR">sdfsfd</P_REP_LOGIN>
</GET_ALL_SALESREPINFO>
</statement></ns1:TerritoriesAndSalesRepsRequest>
oracle function
DECLARE
RETURN_VALUE BEACONDM_ETL.ACCT_TABLE_TYPE;
P_ZIP_CODE VARCHAR2(2000) := '-';
BEGIN
RETURN_VALUE := BEACONDM_ETL.GET_ACCT_INFO(P_ZIP_CODE);
--DBMS_OUTPUT.PUT('RETURN_VALUE: ');
--DBMS_OUTPUT.PUT_LINE(RETURN_VALUE);
DBMS_OUTPUT.PUT('P_ZIP_CODE: ');
DBMS_OUTPUT.PUT_LINE(P_ZIP_CODE);
END;
GO
DECLARE
RETURN_VALUE BEACONDM_ETL.SALESREP_TABLE_TYPE;
P_REP_LOGIN VARCHAR2(2000) := '-';
BEGIN
RETURN_VALUE := BEACONDM_ETL.GET_ALL_SALESREPINFO(P_REP_LOGIN);
--DBMS_OUTPUT.PUT('RETURN_VALUE: ');
--DBMS_OUTPUT.PUT_LINE(RETURN_VALUE);
DBMS_OUTPUT.PUT('P_REP_LOGIN: ');
DBMS_OUTPUT.PUT_LINE(P_REP_LOGIN);
END;
GO
Please send me if you have any blogs for calling stored procedure using jdbc receiver adapter.Hi Madhu,
>>>I am calling stored procedure using jdbc reeciver adapter . showing below error. In oracle database it is under functions not in the procedure. functions and stored procedure are same? is it should be create under procedure?
Of course there is difference between Oracle functions & Stored procedures:
Re: Populating DropdownByKey by accessing backend
As far as i know and have configured and used Stored procedures with the JDBC adapter, it can be used with Oracle stored procedures (leave it to the experts to comment on the Oracle functions part). So if you change it to stored procedure then it should work fine.
You may then define your Message structure as follows:
http://help.sap.com/saphelp_nw73/helpdata/en/44/7b72b2fde93673e10000000a114a6b/content.htm
And you may also like to refer the following blog on stored procedures:
PI JDBC Stored Procedure test scenario
Hope this helps. Regards, Gaurav -
JDBC receiver adapter - SQLException: [SQL0104]
Hello,
I am using JDBC Receiver adapater and connecting to AS400. The statement is generated using UDF. When receiver get the statment it looks like as follows.
select f1.DACMCMPNY from sap.sapcustvew f1, sap.sapcustvew f2 where f2.dcudcstmr in (' 100090') and (f1.dcudcstmr=f2.dcudcstmr or f2.komaster=f1.dcudcstmr)
I get following error. When I ran above sql in a separate java class that runs fine. Also I ran above sql in the AS400 and it works file. I am not sure what is the issue when running on XI. Please let me know.
Unable to execute statement for table or stored procedure. 'LawsonCustomer' (Structure 'Statement') due to java.sql.SQLException: [SQL0104] Token 100090 was not valid. Valid tokens: ,.
MP: exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'LawsonCustomer' (structure 'Statement'): java.sql.SQLException: [SQL0104] Token 100090 was not valid. Valid tokens: ,.
Exception caught by adapter framework: Error processing request in sax parser: Error when executing statement for table/stored proc. 'LawsonCustomer' (structure 'Statement'): java.sql.SQLException: [SQL0104] Token 100090 was not valid. Valid tokens: ,.
Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'LawsonCustomer' (structure 'Statement'): java.sql.SQLException: [SQL0104] Token 100090 was not valid. Valid tokens: ,.. Setting message to status failed.
Returning synchronous error message to calling application: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'LawsonCustomer' (structure 'Statement'): java.sql.SQLException: [SQL0104] Token 100090 was not valid. Valid tokens: ,..
Thank you,
BalajiRaj,
Yes I gave postrophe '' as mentioned in the other thread.
LawsonCustomer is one of the the element in XML structure. The xml message structure looks like as follows.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:http://freemanco.com/xi/Get_Customer" targetNamespace="urn:http://freemanco.com/xi/Get_Customer">
<xsd:complexType name="Cma_Customer_Select_Request">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
98a58fa0687d11dcca07000c296184a2
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="Statement">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
d669121049e911dcaa6d0015c543a10b
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="LawsonCustomer">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
d669121149e911dc997c0015c543a10b
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="access" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
d669121349e911dc87c50015c543a10b
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="action" type="xsd:string" use="required">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
d669121249e911dcbbe40015c543a10b
</xsd:appinfo>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Thank you,
Balaji -
Hi Everyone.
I have an asynchronous scenario, RFC -> PI -> JDBC (Oracle DB)... This does an UPDATE in each message... When try to process 400 message the time of execution in the DB takes 2 minutes. For the client, this time is too long, but I've done everything and the time does not improve.
This is the message:
<?xml version="1.0" encoding="UTF-8"?>
<ns1:SQLString xmlns:ns1="urn:envioinventario:sap:seus">
<Statement>
<Inventario action="SQL_DML">
<access>UPDATE Inventario SET CAN = 65.0, CAN_CD = 876.9 WHERE C_EMP = 'JA' AND BOD = '72' AND COD = 'T9876'</access>
</Inventario>
</Statement>
</ns1:SQLString>
And this is the configuration of the cc:
Please, I need help, I don't know what else to do.
Thank you so much.
CRISTINA M. H.Hi Cristina,
the below blogs might be helpful to increase hte performance of scenario
XI/PI File and JDBC Receiver Adapter performance and availability improvements
JDBC Receiver scenarios best practices - How to handle High volume load-Stored procedure design-Part5
Decoding Max Concurrency ,poolWaitTime ,Driver properties in JDBC receiver Adapter Configuration
regards,
Harish
Maybe you are looking for
-
I want to make PR creation madatory for PO creation; PO shall always be created when a PR exists for it. Is there any std functionality or development is required. Thanx, Suz
-
Can File Adapter Select Based on File Age?
Is there a way to configure a File Sender communication channel to only pick up files that are at least 10 minutes old (been in the sending directory for that long)? I want to avoid anything requiring an external process (ie. temp directory or outsid
-
After I upgrade maverick my display will suddenly shut off but my sounds is still working. Need help on this? Thank you
-
Converting oracle forms into java forms
Hi all,, would help me plz on how to convert oracle forms into java using any tool; Is Jheadstart is the tool,, im having jeveloper version 10.1.2.1.0
-
Alphanumeric data in EDIFACT: national characters
We are trying to send outgoing EDIFACT ORDERS (using UNOC) that contain Swedish characters. This fails with the error: Element IMD040 data type must be 'Alphanumeric' With UNOC the message should be able to contain the Swedish characters, which can b