cancel
Showing results for 
Search instead for 
Did you mean: 

How to handle default SOAP Fault message thrown by XI?

Former Member
0 Kudos

Hi experts,

I have this synchronous scenario:

SOAPhttps://forums.sdn.sap.com/post!default.jspa?forumID=44#

Click for underline -> XI -> RFC -> XI -> SOAP

When the RFC destination (Another R/3 system) is down, the SOAP client gets the following error:

<i><SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">

<SOAP:Body>

<SOAP:Fault>

<faultcode>SOAP:Server</faultcode>

<faultstring>Server Error</faultstring>

<detail>

<s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">

<context>XIAdapter</context>

<code>DeliveryException</code>

<text>com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: RfcAdapter: receiver channel has static errors: can not instantiate RfcPool caused by: com.sap.aii.af.rfc.RfcAdapterException: error initializing RfcClientPool:com.sap.aii.af.rfc.core.repository.RfcRepositoryException: can not connect to destination system due to: com.sap.mw.jco.JCO$Exception: (102) RFC_ERROR_COMMUNICATION: Connect to SAP gateway failed

Connect_PM TYPE=A ASHOST=nhgsdbs02 SYSNR=11 GWHOST=nhgsdbs02 GWSERV=sapgw11 PCS=1

LOCATION CPIC (TCP/IP) on local host with Unicode

ERROR hostname 'nhgsdbs02' unknown

TIME Tue Apr 17 12:21:27 2007

RELEASE 700

COMPONENT NI (network interface)

VERSION 38

RC -2

MODULE ninti.c

LINE 361

DETAIL NiPGetHostByName2: hostname 'nhgsdbs02' not found

SYSTEM CALL gethostbyname_r

ERRNO 11004

ERRNO TEXT WSANO_DATA: Valid name, no data record of requested type

COUNTER 1

at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:451)

at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:125)

at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:831)

at com.sap.engine.frame.core.thread.Task.run(Task.java:64)

at com.sap.engine.core.thread.impl5.SingleThread.execute(SingleThread.java:79)

at com.sap.engine.core.thread.impl5.SingleThread.run(SingleThread.java:150)</text>

</s:SystemError>

</detail>

</SOAP:Fault>

</SOAP:Body>

</SOAP:Envelope></i>

This is a default SOAP Fault message thrown by XI.

How can the SOAP client handle this fault message?

The WSDL generated by XI does not contain this fault message format.

I am NOT using BPM.

Please help.

Thanks.

Ron

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

to handle fault messages see the below links

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/ee5bc490-0201-0010-e9b5-a258cf08...

/people/sap.user72/blog/2006/01/16/xi-propagation-of-meaningful-error-information-to-soap-client

/people/shabarish.vijayakumar/blog/2006/11/02/fault-message-types--a-demo-part-1

regards

Chilla

Former Member
0 Kudos

> Hi,

> to handle fault messages see the below links

>

>

>

> https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs

> /library/uuid/ee5bc490-0201-0010-e9b5-a258cf083bca

> https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/

> 2759

>

>

> https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/

> 4846

>

> regards

> Chilla

The links you've shown talk about handling customized fault messages.

However, my problem happens when the RFC is unreachable, and XI immediately returns a default SOAP Fault Message of the structure I mentioned in the first post.

The external SOAP client cannot read this fault message.

Why is that?

Please help.

Thanks.

Ron

Former Member
0 Kudos

HI,

See the external SOAP client is to test the SOAP client , also you wil get the response, but nor fault message / which was the exception in RFC ,

So complete the scenario and develop the mapping to map the exception message structure to the fault message type ( this is to be created the fault message type in IR based on the exchange fault data type available in IR)

se above links to get complete idea.

complete scenario and execute it , the fault message route to a file or configure acordingly / respect to your business requirement , sure you can see the result.

Regards

Chilla