cancel
Showing results for 
Search instead for 
Did you mean: 

RFC JDBC Exception Handling

Former Member
0 Kudos

Hello,

i have the following scenario:

RFC receiver adapter (synchronous) <> XI <> JDBC receiver adapter (to MS SQL-database)

Is it possible to catch JDBC-exceptions, e.g. "duplicate primary key" and pass it to the calling rfc adapter?

thanks for your help

Christian

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Hello,

I've created a synchronous BPM. But if an exception occurs, the exception branch of the block won´t be executed.

What´s my mistake?

Regards

Christian

Former Member
0 Kudos

Hello,

still my problem is the exception handling of the synchronous JDBC - call.

If an error occurs I get the error "no payload found" in sxmb_moni_bpe

I think this is a problem of where the error occur, in the SOAP header

In sxmb_moni i get the following Error:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!-- Aufruf eines Adapters

-->

- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">

<SAP:Category>XIAdapterFramework</SAP:Category>

<SAP:Code area="MESSAGE">GENERAL</SAP:Code>

<SAP:P1 />

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'KUNDEN' (structure 'STATEMENT_NAME'): com.microsoft.sqlserver.jdbc.SQLServerException: Verletzung der PRIMARY KEY-Einschränkung 'PK_Kunden'. Ein doppelter Schlüssel kann in das 'dbo.KUNDEN'-Objekt nicht eingefügt werden.</SAP:AdditionalText>

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack />

<SAP:Retry>M</SAP:Retry>

</SAP:Error>

Has anybody got any idea where my mistake is?#

I´m at loss.

If you need further information, contact me. I´ll send you the required informations.

Thanks and regards

Christian

Former Member
0 Kudos

Hello,

is the anybody who has the same problem and solved it?

Regards

Former Member
0 Kudos

Hi,

thanks for your help.

A BPM would be best to solve the problem. Is there any example, blog or how to guide, which helps me to design this BPM (RFC-Sender, JDBC-Receiver with exception branch)

I haven't designed any BPM yet.

Thanks

Message was edited by:

Christian Kaiser

Former Member
0 Kudos

Thanks for your suggestions,

but this doesn't solve my problem. If an exception occurs on the receiver side (JDBC) my RFC module will dump on the sender side. I will only notify the caller that an error occurred and what type it was.

Former Member
0 Kudos

Hi ,

Do one thing implement BPM . Put your sync send JDBC send step in block and exception/deadline branch to that block .You sync JDBC call will first insert data into the database and as a response it will send you the number of row updated/inserted .So whenever an exception occurs it will do to deadline/exception branch . In deadline branch you can throw alert or if you want to write error to file or database you can do the required transformation .

Thanks ,

Suvarna

moorthy
Active Contributor
0 Kudos

Hi,

some of the options are:

--->Develop a Stored Procedure and let it check for the duplicates and return the value to XI (In Receiver Side)

-->second option is to check this validation in Sending Application system to this you need to maintain a table (Sender Side)

--->third option is to maintain the lookups in XI so that you can check before it reaches into Receiving system (In XI)

Hope this will give some idea

Rgds,

Moorthy