cancel
Showing results for 
Search instead for 
Did you mean: 

JDBC error with Oracle Database

Former Member
0 Kudos

Hi,

We are now facing some problems when using Oracle JDBC in XI JDBC Adapter, and this problem happens randomly.

Our oracle is ver 8.1.5, jdbc ver 9.2.0.1 ojdbc14.jar, J2RE 1.4.2 IBM AIX build ca142-20060824.

The following exceptions have been found in log viewer:

Exception caught when executing statement for table/stored proc. 'cgjs_zj_zjb' (structure 'SELECTSTMT'):

java.sql.SQLException: Io exception: There is no process to read data written to a pipe.

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:334)

at oracle.jdbc.ttc7.TTC7Protocol.handleIOException(TTC7Protocol.java:3668)

at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)

at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:850)

at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2599)

at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2963)

at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:653)

at com.sap.aii.adapter.jdbc.SAXHandler.executeQuery(xml2sql.java(Compiled Code))

at com.sap.aii.adapter.jdbc.SAXHandler.executeQuery(xml2sql.java(Inlined Compiled Code))

at com.sap.aii.adapter.jdbc.SAXHandler.SQLsel(xml2sql.java(Compiled Code))

at com.sap.aii.adapter.jdbc.SAXHandler.processList(xml2sql.java(Compiled Code))

at com.sap.aii.adapter.jdbc.SAXHandler.endElement(xml2sql.java(Compiled Code))

at com.sap.engine.lib.xml.parser.handlers.SAXDocHandler.endElement(SAXDocHandler.java(Compiled Code))

at com.sap.engine.lib.xml.parser.XMLParser.scanEndTag(XMLParser.java(Compiled Code))

at com.sap.engine.lib.xml.parser.XMLParser.scanElement(XMLParser.java(Compiled Code))

at com.sap.engine.lib.xml.parser.XMLParser.scanContent(XMLParser.java(Compiled Code))

at com.sap.engine.lib.xml.parser.XMLParser.scanElement(XMLParser.java(Compiled Code))

at com.sap.engine.lib.xml.parser.XMLParser.scanDocument(XMLParser.java(Compiled Code))

at com.sap.engine.lib.xml.parser.XMLParser.parse0(XMLParser.java(Compiled Code))

at com.sap.engine.lib.xml.parser.AbstractXMLParser.parseAndCatchException(AbstractXMLParser.java(Compiled Code))

at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java(Inlined Compiled Code))

at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java(Compiled Code))

at com.sap.engine.lib.xml.parser.Parser.parseWithoutSchemaValidationProcessing(Parser.java(Inlined Compiled Code))

at com.sap.engine.lib.xml.parser.Parser.parse(Parser.java(Compiled Code))

at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java(Compiled Code))

at javax.xml.parsers.SAXParser.parse(Unknown Source)

at javax.xml.parsers.SAXParser.parse(Unknown Source)

at com.sap.aii.adapter.jdbc.xml2sql.service(xml2sql.java:211)

at com.sap.aii.adapter.jdbc.XI2JDBC.onInternalMessage(XI2JDBC.java:481)

at com.sap.aii.adapter.jdbc.SapAdapterServiceFrameImpl.callSapAdapter(SapAdapterServiceFrameImpl.java:175)

at com.sap.aii.af.modules.CallAdapterWithMessageBean.process_receiver(CallAdapterWithMessageBean.java:226)

at com.sap.aii.af.modules.CallAdapterWithMessageBean.process(CallAdapterWithMessageBean.java:164)

at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl0_1.process(ModuleLocalLocalObjectImpl0_1.java:103)

at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:264)

at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0_0.process(ModuleProcessorLocalLocalObjectImpl0_0.java:103)

at com.sap.aii.af.listener.AFWListenerBean.onMessage(AFWListenerBean.java:267)

at com.sap.aii.af.listener.AFWListenerLocalObjectImpl0_0.onMessage(AFWListenerLocalObjectImpl0_0.java:103)

at com.sap.aii.af.ra.ms.impl.ServicesImpl.deliver(ServicesImpl.java:306)

at com.sap.aii.adapter.xi.ms.XIEventHandler.onDeliver(XIEventHandler.java:1034)

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

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

at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java(Compiled Code))

at java.security.AccessController.doPrivileged1(Native Method)

at java.security.AccessController.doPrivileged(AccessController.java(Compiled Code))

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java(Compiled Code))

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java(Compiled Code))

Hope you can help me.

B'Rgds,

YiNing

Accepted Solutions (1)

Accepted Solutions (1)

MichalKrawczyk
Active Contributor
0 Kudos

Hi,

>>>>There is no process to read data written to a pipe.

this may not be an XI error

It's related to the DB that your using:

when you put:

http://www.google.pl/search?hl=pl&q=oracle%22Thereisnoprocesstoreaddatawrittentoapipe.&lr=

you will find many similar errors from oracle forums:

some solved by patching the db server

some caused by high volume of data and slow connection

that's why I'd strongly suggest trying to check that out

on oracle forums (or oracle support)

Regards,

michal

Former Member
0 Kudos

Hi, Michal.

Thank you for your reply.

I didn't say that it's XI error, I've tried search the key words in google, which is funny, a lot of guys said that it's UNIX's bug.

But wherever the problem is, it's integration consultant's problem, isn't it?:)

Actually I've solved this problem by increased the retry times of JDBC commnunication channel, but I'm not sure this problem won't happen any more, for I what I did is just lower the possibility of the problem's occurence.

Hope you can help me.

B'Rgds,

YiNing

MichalKrawczyk
Active Contributor
0 Kudos

Hi,

>>>>it's integration consultant's problem, isn't it?:)

sure as always but in this case you can just contact oracle support

and describe the issue to them - as you're using oracle's jdbc drivers

and oracle db

that's what I'd do

Regards,

michal

Former Member
0 Kudos

YiNing,

>>Actually I've solved this problem by increased the retry times of JDBC >>commnunication channel, but I'm not sure this problem won't happen any more, >>for I what I did is just lower the possibility of the problem's occurence.

so , isnt that a good practice? You tried to make your work more trustworthy...:)

anyways, I noticed in the stacktrace the statement

<b>java.sql.SQLException:IOException</b> ...

if it would have been an Oracle error then you would have seen something like

<b>java.sql.SQLException:ORA-XXXX</b> ... where ORA-XXXX would have given you an Oracle error number clearly stating the underlying cause...not the case with the stacktrace you've mentioned..so I guess the way you are trying it is the only way...

-- Amol

Former Member
0 Kudos

nice trick:)

This problem hasn't been solved yet, and now I found something harder to solve with this Oracle database and it's JDBC when I was using a synchronous scenario.

Check the following adapter log:

2007-02-28 10:03:53 Success Message successfully received by messaging system. Profile: XI URL: http://sapxidev:50000/MessagingSystem/receive/AFW/XI Credential (User): XIISUSER

2007-02-28 10:03:53 Success Using connection JDBC_http://sap.com/xi/XI/System. Trying to put the message into the request queue.

2007-02-28 10:03:53 Success Message successfully put into the queue.

2007-02-28 10:03:53 Success The message was successfully retrieved from the request queue.

2007-02-28 10:03:53 Success The message status set to DLNG.

2007-02-28 10:03:53 Success Delivering to channel: JDBC_RECV_PO_SBC

2007-02-28 10:03:53 Success MP: entering

2007-02-28 10:03:53 Success MP: processing local module localejbs/CallSapAdapter

2007-02-28 10:03:53 Success Receiver JDBC adapter: processing started; QoS required: BestEffort

2007-02-28 10:10:59 Success JDBC adapter receiver channel JDBC_RECV_PO_SBC: processing started; party , service PO_SYS

2007-02-28 10:10:59 Success SELECT BUSID, BUDAT, EDPER, BKTXT, XBLNR, BUZEI, BSCHL, HKONT, LIFNR, NEWUM, DMBTR, GSBER, MATNR, MENGE, ZUONR, SGTXT, XREF1, XREF2, XREF3, IDXSP, MWSKZ, RMVCT, RSTGR, ZTERM, ZFBDT, ZLSCH, XNEGP, KOSTL, AUFNR, LGORT_I, LGORT_O, GRUND, BWART, BSELM, STATS, ERFME, ZZFIELD2 FROM SAP_ZJB WHERE (STATS=O AND EDPER=9105)

2007-02-28 10:11:01 Success UPDATE SAP_ZJB SET STATS=U WHERE (STATS=O AND EDPER=9105)

2007-02-28 10:11:01 Success Database request processed successfully

2007-02-28 10:11:01 Success MP: leaving

2007-02-28 10:11:01 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.MessageExpiredException: Sync application request expired.. Setting message to status failed.

2007-02-28 10:11:01 Error The message status set to FAIL.

2007-02-28 10:11:01 Error Returning synchronous error message to calling application: com.sap.aii.af.ra.ms.api.MessageExpiredException: Sync application request expired..

Between the 2007-02-28 10:03:53 and 2007-02-28 10:10:59, what takes it so long to process? Also it happens randomly.

Since it is synchronous, the remote database table has been updated but the connection with XI has been disconnected for timeout issue, which lead to unrecoverable data inconsistent problem.

Anyone who can help me?

prabhu_s2
Active Contributor
0 Kudos

are u having a sync-sync scenario i.e. jdbc sender sync interface ???? if yes i hope it might not work without a redesign in ur scenario

Former Member
0 Kudos

Hi, Prabhu. We a using ABAP Proxy <--> JDBC Receiver in synchronous senario.

Former Member
0 Kudos

HI,

See the following SAP Notes may be help full

Note 791379 - XI Adapter service properties documentation - regarding Sync communicaiton

Note 831162 - FAQ: XI 3.0 / PI 7.0 JDBC Adapter

Note 941317 - XI / PI JDBC Adapter: Known Problems / Incompatibilities

Note 758563 - Oracle Metalink access for SAP customers

Regards

Chilla..

bhavesh_kantilal
Active Contributor
0 Kudos

Increasing the timeput should help in this case I guess.

Look into Michal's blog "TImeouts Timeouts" and see if that helps.

Regards

Bhavesh

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

Also see the /people/siva.maranani/blog/2005/05/21/jdbc-stored-procedures

Regards

Chilla..