cancel
Showing results for 
Search instead for 
Did you mean: 

Proxy To JDBC Synchronous Scenario

Former Member
0 Kudos

Hi All,

I have a requirement where I have create Outbound proxy to pass data to JDBC . I need a response back from the data base after receiving data and sending that back to ECC system using a proxy again .  To achieve the follow i have create the objects as bellow :

Data Types

1. DT_EMP_Dump_Sender

2.DT_EMP_DUMP_Res

3.DT_EMP_Dump_Receiver

4.DT_EMP_Dump_Receiver_response

Respective Message types for the following are also created .

Message Mapping :

Request :

Response :

Operational Mapping is done on the basis of the above and ID is configured for the same .

We are aware the the JDBC response can be achived with creating a procedure but we are still not able to receive any response evven after writing the procedure.

Can anyone let us know how will this scenario work .

we are using PI 7.4 single stack system .(java )

thanks.

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi All,

Could you please help me out to resolve this issue.

nabendu_sen
Active Contributor
0 Kudos

This is the trickiest part of the configuration and where most of us go wrong. The JDBC adapter when sending its response back will create a Message Type of the same name as the request message with a  "_response" appended to it.

So, if your Request message type is going to have the name, (example) "MT_JDBC_SELECT_JDBC_REQUEST" then, the message type for the response that is to be created will have to be "MT_JDBC_SELECT_JDBC_REQUEST_response" .

In your case it should be "MT_EMP_Dump_Receiver_response".

Regards,

Nabendu.

Former Member
0 Kudos

Hi Nabendu,

Thanks for your response but as you are suggesting, already i  have created the same . but unable to get response

Sender message Type : (For Proxy)

Request :   MT_EMP_Dump_Sender

Response : MT_EMP_DUMP_Res

Receiver Message Type: (For JDBC)

Request :   MT_EMP_Dump_Receiver

Response : MT_EMP_Dump_Receiver_response

pvishnuvardan_reddy
Active Contributor
0 Kudos

HI Dhyanesh,

Since it is a synchornous scenario, I guess the messages are getting failed with timeout error since there is no response coming back from DB, is this correct?

Check with the DB team, whether the SP is sending back any response for the requests coming in.

If everything is fine as per the above, then can you please share the error logs.

Regards

nabendu_sen
Active Contributor
0 Kudos

Hi Dhyanesh,

It seems your Receiver Stored Procedure structure is not matching with what suggested by SAP.

  <StatementName5>

<storedProcedureName action=” EXECUTE”>

  <table>realStoredProcedureeName</table>

<param1 [isInput=”true”] [isOutput=true] type=SQLDatatype>val1</param1>

</storedProcedureName >

  </StatementName5>


Data Type:

Message Type:


You can compare with the above Pic and also please go through the below blog:


Regards,

Nabendu.

Former Member
0 Kudos

Hi Vishnu,

what you are saying that is absolutely correct, it is getting time out. I am also having doubt that database is not sending any response. I am pasting my stored procedure code and error message. Please suggest me if any changes required in stored procedure.

I am not aware how to check in database, how to check whether it is sending response or not and there is no database guys here, please suggest me how to check it.

Stored Procedure :

create or replace PROCEDURE EMP_MASTER_DUMP

(

  EMPLOYEE_CODE IN EMPLOYEE_MASTER_TEST.EMPLOYEE_CODE%type 

, BEGIN_DATE IN EMPLOYEE_MASTER_TEST.BEGIN_DATE%type

, EMPLOYEE_NAME IN EMPLOYEE_MASTER_TEST.EMPLOYEE_NAME%type

, EMPLOYEE_BAND IN EMPLOYEE_MASTER_TEST.EMPLOYEE_BAND%type

, RETURN_X out VARCHAR2

) AS

BEGIN

Insert into EMPLOYEE_MASTER_TEST ("EMPLOYEE_CODE","BEGIN_DATE", "EMPLOYEE_NAME", "EMPLOYEE_BAND") 

values (EMPLOYEE_CODE,BEGIN_DATE,EMPLOYEE_NAME,EMPLOYEE_BAND);

 

  RETURN_X := 'Y';

END EMP_MASTER_DUMP;

Error :

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

- <!--

 Call Integration Server 

--> 

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

<SAP:Category>XIProtocol</SAP:Category>

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

<SAP:P1 />

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText />

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack>com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessageExpiredException: Message 55b91f6d-52df-00aa-e100-80005a00096e(OUTBOUND) expired. at com.sap.aii.adapter.soap.web.SOAPHandler.processSOAPtoXMB(SOAPHandler.java:746) at com.sap.aii.adapter.soap.web.MessageServlet.doPost(MessageServlet.java:505) at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:202) at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:103) at com.sap.engine.services.servlets_jsp.server.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:126) at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:79) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:432) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:210) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:441) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:430) at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78) at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:81) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78) at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:278) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78) at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81) at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78) at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60) at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78) at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27) at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78) at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29) at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78) at com.sap.engine.services.httpserver.filters.SessionSizeFilter.process(SessionSizeFilter.java:26) at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78) at com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:57) at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78) at com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:43) at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78) at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:475) at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:269) at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56) at com.sap.engine.core.thread.execution.Executable.run(Executable.java:122) at com.sap.engine.core.thread.execution.Executable.run(Executable.java:101) at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)</SAP:Stack>

<SAP:Retry>N</SAP:Retry>

</SAP:Error>

Former Member
0 Kudos

HI Nabendu,


I have checked the data type is exactly same as suggest by you. please find screen shot as below