JDBC Batching and XMLTYPEs

So, this question was originally asked here...
http://stackoverflow.com/questions/4327337/does-oracles-xmltype-support-jdbc-batch-updates
However, that was three years ago.  Does JDBC batching still not help with performance with XMLType objects as of 11.2.0.3?

Hi William,
Assumming that you are batching only Statements and CallableStatements.
When a batch of say 10 statements are send and the 5th one fails, then Oracle JDBC returns an array of update counts till the
no of successfully executed statements , in this case it will be an array containing 4 elements( since the 5th failed).
from this we can find out which statement has failed.
note: this feature does not work with PreparedStatement. (to my knowledge there is no way of getting it)
Hope this helps
Elango.

Similar Messages

  • JDBC Batch Updates & PreparedStatement problems (Oracle 8i)

    Hi,
    we're running into problems when trying to use JDBC Batch Updates with PreparedStatement in Oracle8i.
    First of all, Oracle throws a SQLException if one of the statements in the batch fails (e.g. because of a unique constraint violation). As far as I understand, a BatchUpdateException should be thrown?
    The next problem is much worse:
    Consider this table:
    SQL> desc oktest
    ID NOT NULL NUMBER(10)
    VALUE NOT NULL VARCHAR2(20)
    primary key is ID
    When inserting in through batch updates with a PreparedStatement, I can pass 'blah' as a value for ID without getting an exception (Oracle silently converts 'blah' to zero). Only when the offending statement is the last statement in the batch, Oracle throws an exception (again, SQLException instead of BatchUpdateException).
    Any comments/suggestions are appreciated.
    E-mail me if you want to see the code...
    Thanks,
    Oliver
    Oracle version info:
    (Enterprise Edition Release 8.1.6.0.0, JServer Release 8.1.6.0.0, Oracle JDBC driver 8.1.6.0.0 and 8.1.7.0.0 (we're using the 'thin' driver)
    CLASSPATH=/opt/oracle/product/8.1.7/jdbc/lib/classes12.zip:...
    null

    Please refer
    http://www.oracle.com/technology/products/oracle9i/daily/jun07.html

  • JDBC batch query with insert sometimes hangs on executeBatch

    We have the following problem:
    Java client sends through JDBC INSERT query using batch,
    and sometimes this query hangs.
    In V$SESSION ACTIVE session appears, which remains ACTIVE forever.
    Also locked object appears in V$LOCKED_OBJECT and open coursor appears.
    How to know what happens inside the query? Why it hangs?
    This is a thread dump for jdbc thread:
    The thread dump is listed below:
    "SdrWriterThread-1" prio=5 tid=0x184264c8 nid=0x214 runnable [18f1f000..18f1fd94]
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at oracle.net.ns.Packet.receive(Unknown Source)
    at oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
    at oracle.net.ns.NetInputStream.read(Unknown Source)
    at oracle.net.ns.NetInputStream.read(Unknown Source)
    at oracle.net.ns.NetInputStream.read(Unknown Source)
    at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:718)
    at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:690)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:373)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:822)
    - locked <0x10641b80> (a oracle.jdbc.ttc7.TTC7Protocol)
    at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1446)
    at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1371)
    at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:2883)
    - locked <0x100900d0> (a oracle.jdbc.driver.OraclePreparedStatement)
    at com.jnetx.xr.persistence.DAO.executeBatch(DAO.java:66)

    Anton,
    Why it hangs?It's waiting for a lock to be released. The default behaviour of Oracle is to wait indefinitely for a lock to be released.
    You can see this behaviour if you try to update the same row from tw different "SQL*Plus" sessions, for example (since the default behaviour of "SQL*Plus" is not to automatically commit changes).
    In one "SQL*Plus" session, update a row -- but do not commit. In the second session, try to update the same row -- it "hangs". It will remain like this until the first session releases the lock. The simplest way to release the lock is for the first session to execute either a "commit" or "rollback". As soon as you do that, you will see the first session become unstuck.
    Of-course, from the [lack of] information you have posted, I cannot tell you what is holding the lock, or why.
    Good Luck,
    Avi.

  • How are JDBC batch updates implemented by Oracle?

    When you're looking to reduce commits you typically think of JDBC batch updates.
    I'm just wondering how are these implemented by Oracle and is there ever gains to be had to reducing commits in an Oracle specific way like say using VARRAYs with procedures?

    Please refer
    http://www.oracle.com/technology/products/oracle9i/daily/jun07.html

  • Oracle JDBC batch size limit

    Hi,
    Does anyone know of any limitation on the size of the JDBC batch?
    We are facing a problem while storing large feeds to DB:
    - the feed file contains 77K records in it
    - the save to DB action puts all of them in one BATCH statement and tries to save
    - unfortunately in the DB only a small amount of records are saved and the JDBC driver goes silent about the rest
    - the number of records saved from the total count of 77K varies from machine to machine: on my machine the number was something like 11K, on a testing machine it was something like 9K
    - we also know that on some machines even 40K records were saved
    The code fix for this is simple: just save in batches of 1K(or whatever small amount) until all records are saved.
    But I would rather find out that there is a JVM/JDBC configuration option to increase the number of records one BATCH statement can save at a time.
    If not, why the difference between machines? Could it be the amount of RAM available for JVM on the different machines?
    So, does anyone have any idea?
    Thanks,
    Viorel

    Hello,
    This is a forum for TopLink/JPA, so you might have better luck posting your question in the JDBC forum here:
    Java Database Connectivity (JDBC)

  • Stock on posting date with storagelocation,batch and stock types informatio

    Hi,
    I'm needing a report (similar funtion of MB5B) which must reveal the stock postion (closing balance) of the materials on a particular date alongwith storage loactions, batches and stocktypes (Unres/Q/Blkd).As such MB5B either gives the output either by storage location or by batch, not the combination of both.
    Else provide any possibilty means( Database tables) from where i could arrive these mention outputs.
    I could be able to get the information by collecting the values from MKPF & MSEG tables. But this information only suffice the material movements carried on that particular date.. And i will be not having the closing balance as a whole.
    I even wonder to get any such a kind of information in which i could able to get the stock with stock types(Unres/Q/Blkd).
    Any light on this matter is highly appreciable.
    Regards
    Prasanna

    Hi Amit Bakshi,
    Thanks for the reply..
    I executed the suggested program but i found the same kind of information aslike in MB5B..
    The information all i'm looking is to get the closing balance of the given material with storagelocations, batches and stock types on a given posting date.
    For eg.
    On 15 / 03 / 2011
    Material A
    Batch       Slocation       Stock type               Closing balance Qty.
    A1              S001               Unres.                             50
    A1              S002               Unres                            120
    B1              S001               Quality                             15
    C1              S003               Blocked                            30
    In MB5B i could able to get the values of closing balance either Storage location level or by batch level but is it possible to get the combination of both along with stock types?
    Reg
    Prasanna

  • JDBC, JMS and EJB transactions - possible problem?

    Hello,
              I am using Oracle 9, Weblogic 8.1 SP 4, MyEclipse and
              XDoclet.
              In my current project I have the following piece of code
              in one of my message driven beans (code cited as pseudocode
              without unnecessary details):
              * @ejb.bean name="MyMessageProcessor"
              * display-name="Display name for a MyMessageProcessor"
              * jndi-name="ejb/MyMessageProcessor"
              * description="Bean MyMessageProcessor"
              * destination-type="javax.jms.Queue"
              * transaction-type="Container"
              * acknowledge-mode="Auto-acknowledge"
              * subscription-durability="Durable"
              * generate="false"
              * @ejb.transaction type="Required"
              public class MyMessageProcessor implements MessageDrivenBean, MessageListener {
              public void onMessage(Message msg) {
                   try {
                        //obtaining connections to two different databases via JNDi
                        java.sql.Connection connOne =
                        ((DataSource)ctx.lookup("DataSourceOne")).getConnection();          
                        java.sql.Connection connTwo =
                             ((DataSource)ctx.lookup("DataSourceTwo")).getConnection();
                        // performing some UPDATEs and INSERTs on connOne and connTwo
                        // calling some other methods of this bean
                        //creating the reply JMS message and sending it to another JMS queue
                        Message msgTwo = this.createReplyMessage(msg)
                        this.queueSender.send(msgTwo);
                        //commiting everything
                        this.queueSession.commit();          
                   } catch (Exception ex) {
                   try {
                        if (this.queueSession!=null) this.queueSession.rollback();
                   } catch (JMSException JMSEx) {};     
                   this.context.setRollbackOnly();
              Some days ago (before the final remarks from my client) there used to be only one DataSource configurated on the basis of the
              connection pool with non-XA jdbc driver. Everything worked fine
              including the transactions (if anything wrong happend not only wasn't the replymessage sent, but also no changes were written
              to database and the incomming message was thrown back to the my bean's
              queue).
              When I deployed the second DataSource I was informed by an error message, that only one non-transactional resource may
              participate in a global transaction. When I changed both datasources
              to depend on underlying datasources with transatcional (XA) jdbc drivers, everything stopped working. Even if
              EJB transaction was theoretically successfully rolledbacked, the changed were written to the database
              and the JMS message wasn't resent to the JMS queue.
              So here are my questions:
                   1. How to configure connection pools to work in such situations? What JDBC drivers should I choose?
                   Are there any global server configurations, which may influence this situation?
                   2. Which jdbc drivers should I choose so that the container was able to rollback the database transactions
                   (of course, if necessary)?
                   3. Are there any JMS Queue settings, which would disable the container to send message back to the
                   queue in case of setRollbackOnly()? How should be the Queue configurated?
              As I am new to the topic and the deadline for the project seems to be too close I would be grateful
              for any help.
              This message was sent to EJB list and JDBC list.
              Sincerely yours,
              Marcin Zakidalski

    Hi,
              I found these information extremely useful and helpful.
              The seperate transaction for sending messages was, of course, unintentional. Thanks a lot.
              Anyway, I still have some problems. I have made some changes to the
              code cited in my previous mail. These changes included changing QueueSessions
              to non-transactional. I also set the "Honorate global transactions" to true.
              I am using XA JDBC driver. After setting "Enable local transactions" to false
              (I did it, because I assume that JDBC transactions should be part on the global
              EJB transaction) I got the following error:
              java.sql.SQLException: SQL operations are not allowed with no global transaction by default for XA drivers. If the XA
              driver supports performing SQL operations with no global transaction, explicitly allow it by setting
              "SupportsLocalTransaction" JDBC connection pool property to true. In this case, also remember to complete the local
              transaction before using the connection again for global transaction, else a XAER_OUTSIDE XAException may result. To
              complete a local transaction, you can either set auto commit to true or call Connection.commit() or Connection.rollback().
              I have also inspected the calls of methods of bean inside of onMessage() method just to check, whether
              the transactions are correctly initialized (using the weblogic.transaction.Transaction class).
              My questions are as follows:
              1. Any suggestions how to solve it? I have gone through the google answers on that problem and only
              thing I managed to realize that JDBC must start its own transaction. Is there any way to prohibit it
              from doing that? Can using setAutocommit(true/false) change the situation for better?
              2. How to encourage the JDBC driver to be a part of EJB transaction?
              3. As I have noticed each of ejb method has its own transactions (transactions have different
              Xid). Each method of the bean has "required" transaction attribute. Shouldn't it work in such
              way that if already started transaction exists it is used by the called method?
              4. The DataSources are obtained in my application via JNDI and in the destination environment I will have slight
              impact on the configuration of WebLogic. What is least problematic and most common WebLogic configuration which would
              enable JDBC driver to participate in the EJB transaction? Is it the WebLogic configuration problem or can it be
              solved programmically?
              Currently my module works quite fine when "enable local transactions" for DataSources is set to true, but this way
              I am loosing the ability to perform all actions in one transaction.
              Any suggestions / hints are more than welcomed. This message was posted to jdbc list and ejb list.
              Marcin

  • Creation of Batch and maintain characteristics

    Hi,
    I need to create batch and maintain batch classification/characteristics.
    I am doing the following steps
    1. BAPI_BATCH_CREATE --> Crreate the batch
         -Pass material/plant/batch
         -This creates entry in MCHA
    However there is no entry created in MSKA
    2. Get class using BAPI_OBJCL_GETCLASSES
        - Object key = material/plant/nbatch
        - Table = MCHA
        - class type 022
    This BAPI does not return anything saying the classification does not exist.
    However I can see the entry in transaction MSC3N
    There are 2 problems
    1. I need an entry in the MSKA table
    2. Why is BAPI_OBJCL_GETCLASSES not returning the class when the batch is created successfully and is visible in MSC3N
    Thanks for the help
    Karen

    Hi...
    Thanks for your answer...
    I am no able to create the batch using BAPI_BATCH_CREATE.
    The problem was I was not passing values to the parameter BATCHCONTROLFIELDS
    (values of CLASS_NUM = name of class and DOCLASSIFY =X).
    Because of this the entry in MCHA-CLOBJ BM was blank and BAPI_OBJCL_GETDETAIL was not finding the classification.
    No this part is working....
    I now need to have an entry in MSKA...
    Can u tell me how to do this through BAPI or FM
    There is a parameter INTERNALNUMBERCOM for BAPI_BATCH_CREATE...
    will this fill MSKA? I am not sure what values to pass.
    Thanks for the help.
    br
    Karen

  • Vendor batch and batch field on the inbound delivery

    hi GUrus,
    i have looked through most of the threads where the topic of vendor batch and batch on the inbound delviery has comeup. I'm specifically looking at a scneario where i would want to pass the on the batch number provided by the vendor on the IDOC to batch field on the inbound delivery. The reason for this is , i can look at the batch field in the confirmations tab of the PO, in the purchase order histroy tab of the PO, and also MMBE tcode. the material is also batch managed turned on in hte material master. But the issue is that even though i put the batch provided by vendor in the CHARG field on the ASN IDOC, it is still getting populated in the vendor batch field in the inbound delivery.
    any ideas?
    Thanks
    Ravi

    Hi,
       Refer the note:  833668 - Creating batches in the inbound delivery using IDOC  which explains the system design.
    Regards,
    AKPT

  • Bridge CS6: How do you write a script to assign a shortcut to "Batch" and "Image Processor"?

    Many times a day I need to access "Batch" and "Image Processor" in Bridge.
    There is no shortcut, so I have to go the Tools-Photoshop-Batch and Tools-Photoshop-Image Processor menu - the items I need are locked into a second level menu.
    Which is impractical.
    I remember, when I started out with Photoshop many years ago, I downloaded "Deke Keyes" from Deke McClelland, which included keystrokes for "Batch" and "Image Processor".
    From the Bridge forum I learned that you cannot assign shortcuts in Bridge CS6.
    So the general opinon was that a script was used to assign the shortcuts.
    Could you please tell me how to do that?
    Thanks!
    PS: I tried to assign shortcuts via the Mac OS X Mountain Lion keyboard preferences (applications), but it did not work.

    Hi,
    in the exit:Event of the 1st date field add this FormCalc script:
    DateField2 = Num2Date(Date2Num($.formattedValue, "DD.MM.YYYY") + 21, "DD.MM.YYYY")
    You may have to change th date pattern  "DD.MM.YYYY" in the way you need it.

  • Shortcuts for Batch and Image Processor in Bridge CS6

    I use Batch and Image Processor all the time, and I'd like to use a shortcut.
    Can you tell me if there is a shortcut or how I can program one?
    I set up shortcuts for those two commands in Photoshop, but they don't work in Bridge.
    I remember from the time I started with Photoshop and had Deke McClelland's book with his set of shortcuts. There was a shortcut that worked with image processor, but it was just a set you did install and no explanation. When I moved to a different computer and a newer version of Photoshop, these keys got lost.
    Is there any way to automate Batch and Image Processor?

    There is no way to economically batch process in Bridge without having to go thorough sub-menus.
    I'm sorry you can't get it to work, but on my system it works flawless.
    Testing a bit more it seems you don't need to use a unique shortcut at all. I also tried to use the shortcut for Batch I created in PS itself to get the Batch window to front for running actions on open files. For me that is [control + Cmd + B] but feel free to find an other one.
    When I discovered you don't need the unique shortcut at all I used the same shortcut for Bridge CC. . Also created [Control + Cmd + i] for the Image processor.
    Both started without problems.
    To extend I also created both same shortcuts for Bridge CS6. This also was working correctly, off course, having only PS CC open using the shortcut in Bridge CS6 it auto started PS CS6.
    So can you specify a bit more about what OS you are using on what computer (I have OSX 10.8.4 on a MacPro 2012)
    Some screenshots to show the shortcuts in System prefs and how the show in the Bridge Submenus:

  • JDBC adapter and message split

    Hello, does anybody know how I can make a split of a document created by the JDBC adapter and that should look like
    <resultset>
      <row>
         <column-name1>column-value</ column-name1>
         <column-name2>column-value</ column-name2>
         <column-name3>column-value</ column-name3>
      </row>
      <row>
         <column-name1>column-value</ column-name1>
         <column-name2>column-value</ column-name2>
         <column-name3>column-value</ column-name3>
      </row>
    </resultset>
    into several's independent documents of type:
      <row>
         <column-name1>column-value</ column-name1>
         <column-name2>column-value</ column-name2>
         <column-name3>column-value</ column-name3>
      </row>
    May I create the messages in the dispatcher?
    Thank you
    Ernesto Duran

    Hello, isn't it possible to create an inbound abap Proxy in XI that wait for the message then this inbound proxy loops into the message and call and outbound proxy for each entry(row).
    The outbound proxy is working well for me but I'm having problems routing the message back to XI... I get the problem "SAP:Code p1="No inbound interface found for sender" But when I route the message to a business systems everything is ok.????
    Anyway what I want to do is:
    jdbc adapter --> XI --> inbound proxy --> XI --> outbound proxy --> XI --> Idoc adapter --> R3
    And the steps inbound proxy --> XI --> outbound proxy --> XI are used only to split the message.
    The reason why I try to use this approach is that I don't understand how I can split a message in java or XSLT maybe someone know???
    Thank you
    Ernesto Duran

  • Com.sap.aii.adapter.jdbc.svc and com.sap.aii.adapter.jms.svc don't start

    Hello,
    In order to configure JMS Receiver Adapter to access Websphere Application Server 7.0, I have recently deployed file com.sap.aii.adapter.lib.sca with the following libraries:
    com.sap.aii.adapter.lib_api.jar
    com.ibm.ws.ejb.thinclient_7.0.0.jar
    com.ibm.ws.orb_7.0.0.jar
    com.ibm.ws.sib.client.thin.jms_7.0.0.jar
    com.ibm.ws.runtime.jar   
    javax.j2ee.jms.jar
    The communication channel can reach the queue but when I send a message it fails because services sap.com/com.sap.aii.adapter.jdbc.svc and com.sap.aii.adapter.jms.svc are not started.
    Checking dev_server0 file I found the following error.
    ==============================================================================================
    Service com.sap.aii.adapter.jdbc.svc start ================= ERROR =================
    com.sap.engine.frame.ServiceException: Could not obtain an initial context due to a communication failure. Since no provider
    URL was specified, the default provider URL of "corbaloc:iiop:1.0(at)sapdpi-lpar:2809/NameService" was used.  Make sure that any
    bootstrap address information in the URL is correct and that the target name server is running.  Possible causes other than
    an incorrect bootstrap address or unavailable name server include the network environment and workstation network configurati
    on.
    at com.sap.aii.adapter.jdbc.SapAdapterServiceFrameImpl.start(SapAdapterServiceFrameImpl.java:151)
    at com.sap.engine.core.service630.container.ServiceRunner.startFrame(ServiceRunner.java:155)
    at com.sap.engine.core.service630.container.ServiceRunner.startService(ServiceRunner.java:113)
    at com.sap.engine.core.service630.container.ServiceRunner.run(ServiceRunner.java:60)
    at com.sap.engine.frame.core.thread.Task.run(Task.java:73)
    at com.sap.engine.core.thread.impl5.SingleThread.execute(SingleThread.java:162)
    at com.sap.engine.core.thread.impl5.SingleThread.run(SingleThread.java:260)
    Caused by: javax.naming.ServiceUnavailableException: Could not obtain an initial context due to a communication failure. Sinc
    e no provider URL was specified, the default provider URL of "corbaloc:iiop:1.0(at)sapdpi-lpar:2809/NameService" was used.  Make
    sure that any bootstrap address information in the URL is correct and that the target name server is running.  Possible caus
    es other than an incorrect bootstrap address or unavailable name server include the network environment and workstation netwo
    rk configuration. [Root exception is org.omg.CORBA.TRANSIENT: java.net.ConnectException: Connection refused:host=sapdpi-lpar,
    port=2809  vmcid: 0x4942f000  minor code: 3586  completed: No]
    at com.ibm.ws.naming.util.WsnInitCtxFactory.mapInitialReferenceFailure(WsnInitCtxFactory.java:2228)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getWsnNameService(WsnInitCtxFactory.java:1414)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getRootContextFromServer(WsnInitCtxFactory.java:944)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getRootJndiContext(WsnInitCtxFactory.java:865)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContextInternal(WsnInitCtxFactory.java:545)
    at com.ibm.ws.naming.util.WsnInitCtx.getContext(WsnInitCtx.java:123)
    at com.ibm.ws.naming.util.WsnInitCtx.getContextIfNull(WsnInitCtx.java:798)
    at com.ibm.ws.naming.util.WsnInitCtx.rebind(WsnInitCtx.java:242)
    at com.ibm.ws.naming.util.WsnInitCtx.rebind(WsnInitCtx.java:255)
    at javax.naming.InitialContext.rebind(InitialContext.java:367)
    at javax.naming.InitialContext.rebind(InitialContext.java:367)
    at com.sap.aii.adapter.jdbc.SapAdapterServiceFrameImpl.start(SapAdapterServiceFrameImpl.java:100)
    ... 6 more
    Caused by: org.omg.CORBA.TRANSIENT: java.net.ConnectException: Connection refused:host=sapdpi-lpar,port=2809  vmcid: 0x4942f0
    00  minor code: 3586  completed: No
    at com.ibm.CORBA.transport.TransportConnectionBase.connect(TransportConnectionBase.java:425)
    at com.ibm.ws.orbimpl.transport.WSTransport.getConnection(WSTransport.java:436)
    at com.ibm.CORBA.transport.TransportBase.getConnection(TransportBase.java:187)
    at com.ibm.rmi.iiop.TransportManager.get(TransportManager.java:89)
    at com.ibm.rmi.iiop.GIOPImpl.getConnection(GIOPImpl.java:120)
    at com.ibm.rmi.iiop.GIOPImpl.locate(GIOPImpl.java:209)
    at com.ibm.rmi.corba.Corbaloc.locateUsingINS(Corbaloc.java:307)
    at com.ibm.rmi.corba.Corbaloc.resolve(Corbaloc.java:378)
    at com.ibm.rmi.corba.ORB.objectURLToObject(ORB.java:3721)
    at com.ibm.CORBA.iiop.ORB.objectURLToObject(ORB.java:3256)
    at com.ibm.rmi.corba.ORB.string_to_object(ORB.java:3619)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.stringToObject(WsnInitCtxFactory.java:1524)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getWsnNameService(WsnInitCtxFactory.java:1389)
    ... 16 more
    Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:522)
    at java.net.Socket.connect(Socket.java:470)
    at java.net.Socket.<init>(Socket.java:367)
    at java.net.Socket.<init>(Socket.java:180)
    at com.ibm.ws.orbimpl.transport.WSTCPTransportConnection.createSocket(WSTCPTransportConnection.java:270)
    at com.ibm.CORBA.transport.TransportConnectionBase.connect(TransportConnectionBase.java:354)
    ... 28 more
    Service com.sap.aii.adapter.jms.svc start ================= ERROR =================
    com.sap.engine.frame.ServiceRuntimeException: Could not obtain an initial context due to a communication failure. Since no pr
    ovider URL was specified, the default provider URL of "corbaloc:iiop:1.0(at)sapdpi-lpar:2809/NameService" was used.  Make sure t
    hat any bootstrap address information in the URL is correct and that the target name server is running.  Possible causes othe
    r than an incorrect bootstrap address or unavailable name server include the network environment and workstation network conf
    iguration.
    at com.sap.aii.adapter.jms.core.service.AdapterServiceFrameImpl.bindAdapter(AdapterServiceFrameImpl.java:171)
    at com.sap.aii.adapter.jms.core.service.AdapterServiceFrameImpl.start(AdapterServiceFrameImpl.java:125)
    at com.sap.engine.core.service630.container.ServiceRunner.startFrame(ServiceRunner.java:155)
    at com.sap.engine.core.service630.container.ServiceRunner.startService(ServiceRunner.java:113)
    at com.sap.engine.core.service630.container.ServiceRunner.run(ServiceRunner.java:60)
    at com.sap.engine.frame.core.thread.Task.run(Task.java:73)
    at com.sap.engine.core.thread.impl5.SingleThread.execute(SingleThread.java:162)
    at com.sap.engine.core.thread.impl5.SingleThread.run(SingleThread.java:260)
    Caused by: javax.naming.ServiceUnavailableException: Could not obtain an initial context due to a communication failure. Sinc
    e no provider URL was specified, the default provider URL of "corbaloc:iiop:1.0(at)sapdpi-lpar:2809/NameService" was used.  Make
    sure that any bootstrap address information in the URL is correct and that the target name server is running.  Possible caus
    es other than an incorrect bootstrap address or unavailable name server include the network environment and workstation netwo
    rk configuration. [Root exception is org.omg.CORBA.TRANSIENT: Connection state: State: ABORT (5)  vmcid: 0x4942f000  minor co
    de: 775  completed: No]
    at com.ibm.ws.naming.util.WsnInitCtxFactory.mapInitialReferenceFailure(WsnInitCtxFactory.java:2228)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getWsnNameService(WsnInitCtxFactory.java:1414)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getRootContextFromServer(WsnInitCtxFactory.java:944)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getRootJndiContext(WsnInitCtxFactory.java:865)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContextInternal(WsnInitCtxFactory.java:545)
    at com.ibm.ws.naming.util.WsnInitCtx.getContext(WsnInitCtx.java:123)
    at com.ibm.ws.naming.util.WsnInitCtx.getContextIfNull(WsnInitCtx.java:798)
    at com.ibm.ws.naming.util.WsnInitCtx.rebind(WsnInitCtx.java:242)
    at com.ibm.ws.naming.util.WsnInitCtx.rebind(WsnInitCtx.java:255)
    at javax.naming.InitialContext.rebind(InitialContext.java:367)
    at javax.naming.InitialContext.rebind(InitialContext.java:367)
    at com.sap.aii.adapter.jms.core.service.AdapterServiceFrameImpl.bindAdapter(AdapterServiceFrameImpl.java:163)
    ... 7 more
    Caused by: org.omg.CORBA.TRANSIENT: Connection state: State: ABORT (5)  vmcid: 0x4942f000  minor code: 775  completed: No
    at com.ibm.rmi.iiop.Connection.checkEstablished(Connection.java:3091)
    at com.ibm.rmi.iiop.Connection.send(Connection.java:2145)
    at com.ibm.rmi.iiop.Connection._locate(Connection.java:463)
    at com.ibm.rmi.iiop.Connection.locate(Connection.java:439)
    at com.ibm.rmi.iiop.GIOPImpl.locate(GIOPImpl.java:219)
    at com.ibm.rmi.corba.Corbaloc.locateUsingINS(Corbaloc.java:307)
    at com.ibm.rmi.corba.Corbaloc.resolve(Corbaloc.java:378)
    at com.ibm.rmi.corba.ORB.objectURLToObject(ORB.java:3721)
    at com.ibm.CORBA.iiop.ORB.objectURLToObject(ORB.java:3256)
    at com.ibm.rmi.corba.ORB.string_to_object(ORB.java:3619)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.stringToObject(WsnInitCtxFactory.java:1524)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getWsnNameService(WsnInitCtxFactory.java:1389)
    ... 17 more
    ==============================================================================================
    Could anyone tell me why is trying to connect to "corbaloc:iiop:1.0(at)sapdpi-lpar:2809/NameService"? Do I have to configure a default provider URL for SAP PI server? If so, where I configure it? Any help will be appreciated.
    Thank you in advance.
    Roger Allué i Vall

    Hi Roger,
    we also experience the same issue and would be very keen to understand how you resolved this problem.
    Many thanks.
    Dieter

  • Table name reqd for batches and unrestricted stocks records

    Hi friends,
    I required table name of which having consolidated stocks with batch wise.
    ****reports avialable in T.Code:MMBE (here it displays the batches and unrestricted stocks by storage location wise)....
    These details,i want to see in tables.
    MCHA : will list only materials,plant and batche details.
    MARD: will display Storage location data for material with total quantity.
    LIke these, i want to view the table batches and unrestircted stock details of each material.
    Pls, post ur comments and answer as much as possible.
    Thanks & regards
    sankar.

    Got answered from other forum
    thanks

  • Oracle 10.1.0 jdbc driver and 9i Database

    Are there any known issues with using the Oracle 10.1.0 jdbc drivers and 9i Database. I was lead to believe that the Jdbc drivers are backward compatible.
    Thanks

    Sorry for not including my error:
    Hello all,
    I am getting an error "Bigger type length than Maximum" when calling a stored procedure that returns a small result set. I am not working with BLOBs or CLOBs and cannot find anything on the web that addresses my specific situation.
    I would greatly appreciate any help available in solving this problem.
    Here is my data access object:
    package my.app.access;
    import java.sql.CallableStatement;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import oracle.jdbc.OracleTypes;
    import oracle.jdbc.OracleTypes.*;
    import my.app.beans.Person;
    import my.app.util.Database;
    public class PersonAccess {
         public Person getPerson(Person person) throws SQLException, Exception {
              Database db = new Database();
              Connection con = db.connect();
              ResultSet rs;
              CallableStatement cs = con
                        .prepareCall("{call SP_GET_PERSON_BY_USER_ID (?,?)}");
              cs.setString(1, person.getUserId());
              cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
              cs.execute(); // ################### ERROR HAPPENS ON THIS LINE
              rs = (ResultSet) cs.getObject(2);
              if (rs.next() == true) {
                   person.setId(new Integer(rs.getString("id")).intValue());
                   person.setFirstName((String) rs.getString("first_name"));
                   person.setLastname((String) rs.getString("last_name"));
                   person.setPhoneNumber((String) rs.getString("phone_number"));
                   person.setEmailAddress((String) rs.getString("email_addr"));
                   person.setRoleId(new Integer(rs.getInt("role_id")).intValue());
                   //this.roleName = rs.getString("role_name");
                   person.setPassword((String) rs.getString("password"));
                   person.setAgencyId(new Integer(rs.getInt("agency_id")).intValue());
                   if (rs.getString("account_disabled").equals("1"))
                        person.setAccountDisabled(true);
                   if (rs.getString("pwd_change_reqd").equals("0"))
                        person.setPasswordChangeRequired(false);
              return person;
    And here is a test object:
    package my.app.access;
    import my.app.beans.*;
    public class testAccess {
         * @param args
         public static void main(String[] args) {
              // TODO Auto-generated method stub
              PersonAccess pa = new PersonAccess();
              Person person = new Person();
              person.setUserId("jrlaughlin");
              try {
                   pa.getPerson(person);
              } catch (Exception e) {
                   e.printStackTrace();
              System.out.println("done");
    And here is the output from this test app
    java.sql.SQLException: Bigger type length than Maximum
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:161)
         at oracle.jdbc.driver.DatabaseError.check_error(DatabaseError.java:884)
         at oracle.jdbc.driver.T4CMAREngine.buffer2Value(T4CMAREngine.java:2230)
         at oracle.jdbc.driver.T4CMAREngine.unmarshalUB4(T4CMAREngine.java:1146)
         at oracle.jdbc.driver.T4CTTIoac.unmarshal(T4CTTIoac.java:215)
         at oracle.jdbc.driver.T4C8TTIuds.unmarshal(T4C8TTIuds.java:121)
    done
         at oracle.jdbc.driver.T4CTTIdcb.receiveCommon(T4CTTIdcb.java:125)
         at oracle.jdbc.driver.T4CTTIdcb.receiveFromRefCursor(T4CTTIdcb.java:103)
         at oracle.jdbc.driver.T4CResultSetAccessor.unmarshalOneRow(T4CResultSetAccessor.java:165)
         at oracle.jdbc.driver.T4CTTIrxd.unmarshal(T4CTTIrxd.java:787)
         at oracle.jdbc.driver.T4CTTIrxd.unmarshal(T4CTTIrxd.java:704)
         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:526)
         at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:179)
         at oracle.jdbc.driver.T4CCallableStatement.execute_for_rows(T4CCallableStatement.java:782)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1027)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2887)
         at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:2978)
         at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4102)
         at my.app.access.PersonAccess.getPerson(PersonAccess.java:68)
         at my.app.access.testAccess.main(testAccess.java:17)
    I am only having this problem when using the 10g jdbc driver, 9.2.0.4 and up are fine.
    Thanks again.....

Maybe you are looking for