OSB Polling in sequence

We have the following scenario.
I have to poll a database using DBAdapter in OSB for populated records.
The records must be processed in order for eg InsertEmp , UpdateEmp and DeleteEmp are events and must be delivered in the same sequence.Delete should go not go first before Insert.How to achieve this using the DBAdapter.Could this be done with any inbuilt columns or the ROWID in the table.
The polled records are written to a JMS.How to again avoid any wrong sequencing incase of clustered queues.
Thanks.

Hi,
The requirement may sound simple, but it is actually very difficult to implement 100% guaranteed messaging ordering... You pretty much have to reduce everything to a single thread approach, and that will probably have impacts on performance...
For the weblogic JMS side, there is Message Unit-of-Order... So if you can get there ordered you should be ok... Have a look on the limitations at the end of the page...
http://docs.oracle.com/cd/E23943_01/web.1111/e13727/uoo.htm#JMSPG389
For the DBAdapter Oracle documentation clearly states...
When polling the database for events, you can order the returned rows by the selected column by using the Order By list. The best practice is to choose <No Ordering>, as message ordering regardless is not guaranteed without extra configuration.Unfortunately it doesn't say what's that extra configuration needed to do it... At least I couldn't find...
I would try some of the following... They are all in this document http://docs.oracle.com/cd/E23943_01/integration.1111/e10231/adptr_db.htm
Doing Synchronous Post to BPEL (Allow In-Order Delivery)
Update a Sequencing Table
Specifying Advanced Options... Look for GetActiveUnitOfWork...
This is a very interesting topic though, please let us know how you go...
Hope this helps...
Cheers,
Vlad

Similar Messages

  • OSB Polling in Cluster Environiment

    Hi ,
    I created a OSB Poller which will read data from DB. When I test it in a single server it is working fine but when I move it to cluster environment with two managed servers it is polling Twice from the DB and the reports are generating twice . I have changed the JCA Property <Lock>lock-no-wait</Lock> even then it is polling twice. Any solution Please ?

    Hi:
    Maybe this link can be useful
    http://javaoraclesoa.blogspot.com.au/2012/04/polling-with-dbadapter-in-clustered.html
    Regards,
    RK
    Edited by: RK.. on Dec 16, 2012 7:54 PM
    Edited by: RK.. on Dec 16, 2012 7:55 PM

  • OSB polling process

    Hi
    I have a requirement where i need to create an OSB process which connects to a DB,executes a sql query at regular intervals. In other words a polling process which executes every 5 min
    Can some one suggest me how to go about it.
    Thanks in advance
    Vamsi

    Use "Poll for new or changed records in a table" operation of DB adapter. Please refer below post to know how to use JCA DBAdapter with OSB 11g -
    http://guidoschmutz.wordpress.com/2010/08/08/oracle-service-bus-11g-and-db-adapter-a-different-more-integrated-approach/
    Regards,
    Anuj

  • Logical Delete in DB Polling - OSB

    Hello All,
    I have a question in polling. I have a logical delete column with Read value as 'P and unread value as 'N', Unlike BPEL, OSB's polling, does not make a record to 'P' until the process completes successfully. My DB polling adapter polls the same records while the previous instance is under processing or the previous instance ended in error. Is there a way to logically delete the record immediately once the record is read?
    To avoid this scenario, I added an error handler to make the record to 'E' if the instance encountered any error. By the time the error handler kicks in and updates the record, OSB polls the record a few times. I increased my polling frequency from 5 seconds to 30 seconds, but no luck. Any clue how to handle this scenario?
    Thanks,
    Dwarak

    Is there a way to logically delete the record immediately once the record is read?Dont do any logic in db adapter proxy. Instead make the proxy to just write to a jms queue and then have your processing logic in the jms proxy service which reads off the jms queue.

  • Detect Note Changes in MIDI Sequencer

    Hi all,
    I&rsquo;m trying to detect when the MIDI Sequencer changes notes using some kind of a listener to detect when the note changes occur. My example program is able to detect the end of the sequence and I&rsquo;d like to be able to detect note changes and print a message in a similar way. Here is my example code.
    import javax.swing.*;
    import javax.sound.midi.*;
    public class SequencerTestApplet extends JApplet
        public void init()
            SequencerTest seqTest = new SequencerTest();
            seqTest.play();
            System.out.println("Print from init()");
    class SequencerTest
        Sequencer sequencer=null;
        Sequence seq=null;
        Track track=null;
        public SequencerTest()
            try
            {   sequencer = MidiSystem.getSequencer();
                sequencer.open();
                // detect END OF SEQUENCE
                sequencer.addMetaEventListener(
                    new MetaEventListener()
                    {   public void meta(MetaMessage m)
                        {  if (m.getType() == 47) System.out.println("SEQUENCE FINISHED");
                sequencer.setTempoInBPM(40);
                seq = new Sequence(Sequence.PPQ, 16);
                track = seq.createTrack();
            catch (Exception e) { }
        public void play()
            try
            {    // NOTE 1
                ShortMessage noteOnMsg = new ShortMessage();
                noteOnMsg.setMessage(ShortMessage.NOTE_ON, 0, 60, 93);
                track.add(new MidiEvent(noteOnMsg, 0));
                ShortMessage noteOffMsg = new ShortMessage();
                noteOffMsg.setMessage(ShortMessage.NOTE_OFF, 0, 60, 93);
                track.add(new MidiEvent(noteOffMsg, 16));
                // NOTE 2
                ShortMessage noteOnMsg2 = new ShortMessage();
                noteOnMsg2.setMessage(ShortMessage.NOTE_ON, 0, 68, 93);
                track.add(new MidiEvent(noteOnMsg2, 16));
                ShortMessage noteOffMsg2 = new ShortMessage();
                noteOffMsg2.setMessage(ShortMessage.NOTE_OFF, 0, 68, 93);
                track.add(new MidiEvent(noteOffMsg2, 32));
                sequencer.setSequence(seq);
                sequencer.start();
            catch (Exception e) { }
    }In this program the init() method starts the sequencer through the play() method and then continues on so that the &ldquo;print from init()&rdquo; statement is printed from the init() method while the sequencer is still playing. Then after the sequencer is finished, it uses the MetaEventListener to detect the end of the sequence and print the &ldquo;sequence finished&rdquo; message. I&rsquo;d like to be able to make it also detect when the sequence changes notes in a similar way... Start the sequence and move on, but then be able to detect each time a note change occurs and print a message.
    Since I am putting the notes at specific midi ticks (multiples of 16, or &ldquo;quarter notes&rdquo;) I could poll the Sequencer using getTickPosition() to see if the Sequencer&rsquo;s tick position matches a particular multiple of 16. However, the problem with this is it would lock up the program since it would be constantly polling the sequencer and the program wouldn&rsquo;t be able to do anything else while the Sequencer is playing (and I also have a loop option for the Sequencer so that would lock up the program indefinitely).
    Here&rsquo;s what I&rsquo;ve found out and tried so far...
    I read in this [this tutorial|http://java.sun.com/docs/books/tutorial/sound/MIDI-seq-adv.html] on the java sun site (under &ldquo;Specifying Special Event Listeners&rdquo;) that The Java Sound API specifies listener interfaces for control change events (for pitch-bend wheel, data slider, etc.) and meta events (for tempo change commands, end-of-track, etc.) but it says nothing about detecting note changes (note on/off). Also in the [EventListener API|http://java.sun.com/j2se/1.3/docs/api/java/util/class-use/EventListener.html] (under javax.sound.midi) it only lists the ControllerEventListener and the MetaEvenListener.
    I also read here that MIDI event listeners listen for the end of the MIDI stream, so again no info about detecting note changes.
    It seems like the sequencer should have some way of sending out messages (in some fashion) when these note changes happen, but I&rsquo;m not sure how or even if it actually does. I&rsquo;ve looked and looked and everything seems to be coming back to just these two types of listeners for MIDI so maybe it doesn&rsquo;t.
    To be sure the MetaEventListener doesn&rsquo;t detect note changes I changed the MetaMessage from:
    public void meta(MetaMessage m)
    {    if (m.getType() == 47) System.out.println("SEQUENCER FINISHED");
    }to:
    public void meta(MetaMessage m)
    {    System.out.println("" + m.getType());
    }so that it would print out all of the MetaMessages it receives. The only message that printed was &ldquo;47&rdquo; which indicates the end of the sequence. So the MetaEventListener doesn&rsquo;t appear to do what I need it to do.
    I realize this is a rather odd problem and probably not many people have had the need to do something like this, but it never hurts to ask. If anyone has any suggestions on how to solve this problem it would be greatly appreciated.
    Thanks,
    -tkr

    Tekker wrote:
    As another idea, since I can't do it with a listener like I originally wanted to, would adding a separate thread to poll the sequencer and send an interrupt when it matches a particular midi tick be a good route to try? My thinking is this essentially act kind of like a listener by running in the background and reporting back when it changes notes.Yep, that worked! :)
    import javax.swing.*;
    import javax.sound.midi.*;
    public class ThreadTestApplet extends JApplet
         public void init()
              ThreadTest threadTest = new ThreadTest();
              threadTest.play();
              MIDIThread thread = new MIDIThread(threadTest.sequencer);
              thread.start();
              System.out.println("  Print from init() 1");
              try { Thread.sleep(1000); } catch (InterruptedException ie) {}
              System.out.println("  Print from init() 2");
              try { Thread.sleep(1000); } catch (InterruptedException ie) {}
              System.out.println("  Print from init() 3");
              try { Thread.sleep(1000); } catch (InterruptedException ie) {}
              System.out.println("  Print from init() 4");
    class ThreadTest
         Sequencer sequencer=null;
         Sequence seq=null;
         Track track=null;
         public ThreadTest()
              System.out.println("Sequencer Started");
              try
              {     sequencer = MidiSystem.getSequencer();
                   sequencer.open();
                   // detect END OF SEQUENCE
                   sequencer.addMetaEventListener(
                        new MetaEventListener()
                        {  public void meta(MetaMessage m)
                             {     if (m.getType() == 47) System.out.println("SEQUENCER FINISHED");
                   sequencer.setTempoInBPM(40);
                   seq = new Sequence(Sequence.PPQ, 16);
                   track = seq.createTrack();
              catch (Exception e) { }
         public void play()
              try
              {     // NOTE 1
                   ShortMessage noteOnMsg = new ShortMessage();
                   noteOnMsg.setMessage(ShortMessage.NOTE_ON, 0, 60, 93);
                   track.add(new MidiEvent(noteOnMsg, 0));
                   ShortMessage noteOffMsg = new ShortMessage();
                   noteOffMsg.setMessage(ShortMessage.NOTE_OFF, 0, 60, 93);
                   track.add(new MidiEvent(noteOffMsg, 16));
                   // NOTE 2
                   ShortMessage noteOnMsg2 = new ShortMessage();
                   noteOnMsg2.setMessage(ShortMessage.NOTE_ON, 0, 68, 93);
                   track.add(new MidiEvent(noteOnMsg2, 16));
                   ShortMessage noteOffMsg2 = new ShortMessage();
                   noteOffMsg2.setMessage(ShortMessage.NOTE_OFF, 0, 68, 93);
                   track.add(new MidiEvent(noteOffMsg2, 32));
                   sequencer.setSequence(seq);
                   sequencer.start();
              catch (Exception e) { }
    import javax.sound.midi.*;
    public class MIDIThread extends Thread
         Sequencer sequencer=null;
         long midiTick=0;
         long midi_progressionLastChord=32;
         boolean print = true;
         public MIDIThread(Sequencer sequencer)
              this.sequencer = sequencer;
         public void run()
              System.out.println("Thread Started");
              while (midiTick<midi_progressionLastChord)
              {     midiTick = sequencer.getTickPosition();
                   if (midiTick == 0 || midiTick == 16)
                   {     if (print)
                        {     System.out.println("NOTE CHANGE");
                             print = false;
                   else
                        print = true;
    }I put in several print statements (with pauses in the init method) and the init print statements continue to be printed while the sequencer is playing, so it's not locking up the system and the "note change" statements happen when the sequencer changes notes. So this part is working perfectly! :)
    Here's what I got for my output:
    Sequencer Started
    Print from init() 1
    Thread Started
    NOTE CHANGE
    Print from init() 2
    NOTE CHANGE
    Print from init() 3
    SEQUENCER FINISHED
    Print from init() 4
    The only problem I'm having is how to "throw" this action back up to the main init method and have it do the print statement instead of the thread class. Throwing an interrupt apparently won't work as you have to poll it to see if it has been interrupted (so it'd be no different than just polling the sequencer to see if it equals the specific midi tick). Maybe throw an ActionEvent? But how to attach it to my applet? Would I need to create an instance of my applet and then pass that into the thread class so it can catch the ActionEvent? And if I do that will it stop the thread or will it keep the thread running so can detect the other notes?... Or is there a better/simpler way to do this?
    Thanks again,
    -tkr

  • Multiple proxy services Polling on same Table

    Hi All,
    I have 2 proxy services in OSB Polling on the same status column in orders table.Proxy1 polls on status 'N' ad Proxy 2 polls on status 'Z'.However I see that only one proxy service is polling the orders table.Even though there are records with status 'Z' in order table the Proxy2 process is not started.Kindly let me know how this can be resolved at the earliest.
    Thanks & Regards,
    Radha

    Hi All,
    In my case when the first polling process was running the 2nd polling process was not running.So I undeployed the 1st process and then the 2nd polling process started running.Now again i deployed process1 polling process and both the processes were running successfully.
    Thanks,
    Radha

  • Wrong Case or ClassCastException

    Hello everyone
    I use JWSDP2.0, JDK is jdk1.5.0_12
    I have tried to generate class by the command:
    xjc -p test.jaxb poll.xsd
    Following is the schema
    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
         <xsd:element name="Poll" type="Poll"/>
         <xsd:complexType name="Poll">
              <xsd:sequence>
                   <xsd:element name="queryName" type="xsd:string"/>
                   <xsd:element name="params" type="QueryParams"/>
              </xsd:sequence>
              <xsd:anyAttribute processContents="lax"/>
         </xsd:complexType>
         <xsd:complexType name="QueryParams">
              <xsd:sequence>
                   <xsd:element name="param" type="QueryParam" minOccurs="0" maxOccurs="unbounded"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="QueryParam">
              <xsd:sequence>
                   <xsd:element name="name" type="xsd:string"/>
                   <!-- See note in EPCIS spec text regarding the value for this element -->
                   <xsd:element name="value" type="xsd:anyType"/>
              </xsd:sequence>
         </xsd:complexType>     
    </xsd:schema>I modify the poll.java, and add @XmlRootElement in front of the class declaration.
    Then I write code to test marshall and unmarshall
    package test;
    import java.util.List;
    import java.io.*;
    import javax.xml.bind.*;
    import org.w3c.dom.*;
    import test.jaxb.*;
    public class JAXBTest {
         public static void main(String[] args){
              try {
                   JAXBContext context = JAXBContext.newInstance("test.jaxb");
                   ObjectFactory factory = new ObjectFactory();
                   Marshaller marshal = context.createMarshaller();
                   marshal.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
                   Unmarshaller unmarshal = context.createUnmarshaller();
                   Poll poll = factory.createPoll();
                   poll.setQueryName("Query1");
                   QueryParams params = factory.createQueryParams();
                   List list = params.getParam();
                   QueryParam param = factory.createQueryParam();               
                   param.setName("Name");
                   param.setValue("David");
                   list.add(param);
                   poll.setParams(params);
                  OutputStream os = new FileOutputStream( "poll.xml" );
                  marshal.marshal( poll, os );     
                  marshal.marshal(poll,System.out);
                  Poll input = (Poll)unmarshal.unmarshal( new File( "poll.xml" ) );
                  System.out.println(input.getQueryName());
              } catch (Exception e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
    }I found the root element is generated to "poll", not the schema defined "Poll"
    But marshall and unmarshall are ok.
    In order to comform the schema, I modify Poll.java again.
    Change @XmlRootElement to @XmlRootElement(name = "Poll")The result is I can generate the right case element now("Poll").
    But I get the exception simultaneously, unmarshall is not ok
    java.lang.ClassCastException: javax.xml.bind.JAXBElement
         at test.JAXBTest.main(JAXBTest.java:29)
    is there any resolution to solve wrong case problem and make marshall/unmarshall ok?
    Message was edited by:
    chihwen

    Hi,
    As far as I know Oracle are porting Developer R6 to Linux.
    We're also anxiously waiting for it to be out.
    It should be out in 2 or 3 months.
    About CASE I don't thing anyone will port it to linux.
    Regards,
    Michael
    Jose Abelardo Gutierrez (guest) wrote:
    : My company is looking for CASE or RAD tools for database system
    : developement on Linux.
    : If I can find something that suits our needs we will change all
    : our application developement schema to Linux, and I'll very
    : happy, and our client to.
    : Thanks for your reading
    null

  • BPEL High Availability for various adapter configurations

    Hello,
    I have created a BPEL process that uses DBAdapter to poll for inserts into a table using a sequence file on the file system. This is one of the options for the DBAdapter. This adapter is called from an "receive" activity.
    My understanding is that a bpel internal process schedules the adapter to check the sequence file at intervals. When the sequence value is read a query is executed to determine if there are inserts/updates. If so, a new process instance is created.
    Now, how would this work in a HA situation? (Assume a LB in front of two bpel instances with oracle http server (ohs))
    Are there two processes polling the sequence file, one in each bpel instance ?
    Are the requests funnelled through the Load Balancer address ? (In effect being made from the application server tier back out to the load balancer at the "front").
    This is probably a specific example of a general question about event-driven processes and high availability.
    Thanks in advance, this important for a customer who has a large volume of transactions that require multiple nodes to manage the load and will be using FileAdapter and DBAdapter to receive the events.

    No answer

  • Sequencing in OSB

    Hi,
    I have a small issue regarding sequence in OSB. I have to poll data from Oracle DATABASE and push data  to another Oracle DATABASE. For polling I made a one DBadapter. and for insert I made another DBadapter. The polling and insert operation is working fine but I have to make it synchronusly. means Whatever data comes first in polling DB will be picked up first and until and unless all the transformation is processed and inserted into DB, the second data will not be processed.
    My enviornment is cluster enviornment ,There is 3 OSB manage server and 1 application server.
    Should I introduced any JMS between transportation, or we need to introduced anything between them. 
    Please help
    Thanks
    1005175

    With current setup you'll have concurrent requests from each of your managed servers.
    Moreover, since you're using the standard DB adapter you just cannot grab the lock in time (before obtaining the record). Grabbing a lock in proxy will not guarantee the order.
    Hence => You'll need to target the DB adapter to one managed server only.
    I was told setting JCA to "singleton" would put the DB adapter into master/slave mode (i.e. only one MS works at a time, the rest are on standby), but that setting unfortunately doesn't work under OSB.   I did not verify it though -- who knows, may be it got fixed in the latest versions? I'd try if I were you - if it works, you do not need anything else.
    Biz: throttling is per domain; at runtime it is distributed equally between managed servers => you should set concurrency to the value equal to number of managed servers.
    Workmanager: I'd created 2 -- one for proxy and one for biz.
    Vlad
    http://vladimirdyuzhev.com

  • Can't enforce sequence with polling adapter when faults

    I'm trying to process records in sequence using a polling adapter and the update sequence table strategy
    I have a polling adapter that invokes a composite app which calls an OSB service over http/soap.
    polling adapter -> composite app -> OSB -> db adapter
    On successful processing, the polling adapter updates a sequence table.
    In the event of a fault, I expect the sequence table not to be updated and the failed record to be tried again on the next polling interval. However, even on failure, the sequence table is being updated.
    My bpel component has the property
    <property name="bpel.config.transaction" many="false" type="xs:string">required</property>
    .. and a catch clause which throws a rollback on remote faults
    The next polling interval picks up the next record and the problem repeats. We have then 'lost' the unprocessed record(s).
    How can I force the polling adapter to block on failed records?
    Thanks
    Garret

    Issue solved.
    Setting jca.retry.count=unlimited causes the adapter to behave as we want.
    We had set jca.retry.count = 1 on the mistaken understanding that this related only to a failure to query/poll the database, and that sequence number was updated in a separate context that needed a global transaction to coordinate/rollback.
    We don’t even need to propagate our global transaction from polling adapter to bpel component since all our writes happen in an OSB transaction; Our bpel just (re)throws a fault back to the polling adapter which is enough to trigger retry.

  • Poll the new or changed records use DB Adapter in OSB Cluster

    Hi!
    I have an OSB Cluster which is included two servers: osbServer1 & osbServer2.
    I need to poll a view V_TMS_GOODS, and I use the "SequencingPollingStrategy" to implement it. The following is my JCA config:
    <adapter-config name="getGoodsInfoFromERP" adapter="Database Adapter" wsdlLocation="getGoodsInfoFromERP.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/DB/shaphar" UIConnectionName="shaphar" adapterRef=""/>
    <endpoint-activation portType="getGoodsInfoFromERP_ptt" operation="receive">
    <activation-spec className="oracle.tip.adapter.db.DBActivationSpec">
    <property name="DescriptorName" value="getGoodsInfoFromERP.VTmsGoods"/>
    <property name="QueryName" value="getGoodsInfoFromERPSelect"/>
    <property name="MappingsMetaDataURL" value="getGoodsInfoFromERP-or-mappings.xml"/>
    <property name="PollingStrategy" value="SequencingPollingStrategy"/>
    <property name="SequencingColumn" value="LAST_MODIFY_DATE"/>
    <property name="PollingInterval" value="60"/>
    <property name="MaxRaiseSize" value="50"/>
    <property name="MaxTransactionSize" value="unlimited"/>
    <property name="NumberOfThreads" value="1"/>
    <property name="ReturnSingleResultSet" value="false"/>
    <property name="SequencingTable" value="EDI_TRANS_TIMELOG"/>
    <property name="SequencingTableKeyColumn" value="TRANS_TYPE"/>
    <property name="SequencingTableValueColumn" value="LAST_TRANS_DATE"/>
    <property name="SequencingTableKey" value="V_TMS_GOODS"/>
    </activation-spec>
    </endpoint-activation>
    </adapter-config>
    The question is:
    If I check the "Distributed Polling" box in the JCA Configuration Wizard, the sequence table will have two records for the polling Sequencing, just like the following:
    TRANS_TYPE LAST_TRANS_DATE
         V_TMS_CLIENT     2011/12/19 16:23:36     
    V_TMS_CLIENT     2011/12/19 16:23:36
    If I don't check it, the records is single
    And weither I check "Distributed Polling" box or not, the two servers will poll the view twice(one server one times); For example: There are one thousand records in this view, but all the records will be polled twice by the osbServer1 & osbServer2. Finally the client will get tow thousand duplicate records。
    So, how can I make a balance with the two servers or use the one server to execute the polling?
    Thank you for your help!

    aren't the default cluster aware settings enough for this ?
    http://docs.oracle.com/cd/E15523_01/integration.1111/e10231/adptr_db.htm
    Scalability
    you could enable a few in the adapter wizards

  • Any suggestions on setting up polling sequence in lookout 4.5?

    I have noticed that lookout does not handle polling of radio telemetry units, if you set up each modbus object to poll at a certain time each RTU will poll at the time interval, but not in sequence right after each other, meaning if unit 1 polls and is received, unit 2 will poll when its time interal expires, not immediately after unit 1. I have set up (1)timer for all units but each modbus object will start its countdown from the time it is tagged to timer. any ideas? This becomes a problem when there is 20 plus units, time becomes a factor for timely polls and data posting. Thanks

    Paul, this is a very similar application to what I frequently use. Our approach is to have a master RTU talking to each of the slaves and then the front end PC only talks to the master. I realize this doesn't answer your question on making Lookout poll, but it is how we set our systems up.

  • Error encountered while polling a file using OSB

    Hi,
    This is the Exception when i try to poll a file using OSB
    <Error enco
    untered while polling the resource for the service endpoint ProxyService$CASE_RC
    $BUILD_DATA$FILE_HEADER$FileProcessPS: javax.naming.NameNotFoundExc
    eption: While trying to lookup 'wlsb.internal.transport.task.queue.file' didn't
    find subcontext 'wlsb'. Resolved ''; remaining name 'wlsb/internal/transport/task/queue/file'
    javax.naming.NameNotFoundException: While trying to lookup 'wlsb.internal.transp
    ort.task.queue.file' didn't find subcontext 'wlsb'. Resolved ''; remaining name
    'wlsb/internal/transport/task/queue/file'
    at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(Basic
    NamingNode.java:1139)
    at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:247)
    at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:182)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206)
    at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
    Truncated. see log file for complete stacktrace
    Can i know what is the issue?

    Hi,
    * java.lang.OutOfMemoryError: PermGen space
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.getConstructor(Unknown Source)
    Solution: Increase the max permgen space -XX:MaxPermSize=256m
    There can be a leak in the permgen objects. If tuning parameters do not resolve the issue, we need to use the memory leak detector tools and find out which instances in the permgen space are not getting cleared.
    Reference - Weblogic wonders...
    http://weblogic-wonders.com/weblogic/2010/12/30/different-out-of-memory-issues/
    Cheers,
    Vlad

  • OSB DB Poller deleting the record when there is a failure

    Hi All,
    My project consists of below OSB services..
    DB Poller -> Proxy service A -> Proxy service B
    DB Poller is JCA Based and it should delete the polled record after the complete flow is successful. If there is any error in my OSB Proxy services, the record should not be deleted.
    Proxy service A calls Proxy service B using routing(static). My Proxy service B is throwing error and the record is getting deleted.
    If I change to Dynamic routing the record id not getting deleted and the flow works as expected. The routing option configuration is same for both static and dynamic routing.
    The only configuration in my routing option is QOS="Exactly once" .
    Can anyone let me know why the record is deleted if I use static routing?
    Thanks in advance

    In your scenario record will be deleted as your DB Poller will commit the transaction once the message has been delivered to Proxy Service A.
    If you want the message not to be deleted then you must have only the DB Poller proxy include the logic of proxy A and must make a call to proxy B.

  • OSB DB Adapter Polling Issue

    Hello Everybody,
    Requirement
    I am doing DB Adapter polling in OSB.I have a db adapter which polls order table whenever there is a record with status='N'.The OSB component is on single node of Weblogic Server.
    1.The db adapter picks the order data with status='N' in the proxy service
    2.It transforms to webservice xsd
    3.Invokes a webservice.
    4.The webservice returns acknowledgement number.
    5.The order table should be updated with status 'Z' and attribute1=acknowledgement number
    OSB Service Design
    1.Proxy service calls business service to poll the order table
    2.Converts the payload to the xsd format required by target
    3.Invokes the webservice on target
    4.Receives acknowledgement number
    5.calls a plsql procedure which updates all the records within this batch with the acknowledgement number and status='Z'
    My configurations in db adapter
    Logical delete option in db adapter.
    Unread Value :'N'
    Read Value : 'A'
    Polling frequency : 300 seconds
    no of databse rows per XML document : 10
    Database rows per transaction : 10
    Issue
    1.My process after getting the acknowledgement number it updates the status with Z and attribute1=acknowledgement number.At the of this transaction I am seeing that the status is being updated by
    the adapter to 'A' based on read value.I want the read value only to be updated initially but as soon as my OSB process picks it for further processing it should not update again.How can i prevent
    the status from getting updated to 'A'.
    2.I have 40 records in order table.Per the database rows per transaction it should process 10 records at a time and for each batch of 10 i should get one acknowledgement number.Instead i see that
    all the 40 records are updated with the same acknowledgement number.Kindly help as to how I can resolve this situation.
    Thanks & Regards,
    Radha

    Hi Arik,
    I tried setting the property(idempotent) in jca file of the polling adapter and it gave me below error.Kindly help
    <adapter-config name="EBS_FETCHDATA" adapter="Database Adapter" wsdlLocation="EBS_FETCHDATA.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/DB/newebs" UIConnectionName="EBS" adapterRef=""/>
    <endpoint-activation portType="EBS_FETCHDATA_ptt" operation="receive">
    <activation-spec className="oracle.tip.adapter.db.DBActivationSpec">
    <property name="DescriptorName" value="EBS_FETCHDATA.XxcmfOtmOrderHdrIfaceTmp"/>
    <property name="QueryName" value="EBS_FETCHDATASelect"/>
    <property name="MappingsMetaDataURL" value="EBS_FETCHDATA-or-mappings.xml"/>
    <property name="PollingStrategy" value="LogicalDeletePollingStrategy"/>
    <property name="MarkReadColumn" value="OTM_INTERFACE_STATUS"/>
    <property name="MarkReadValue" value="A"/>
    <property name="MarkUnreadValue" value="N"/>
    <property name="PollingInterval" value="60"/>
    <property name="MaxRaiseSize" value="10"/>
    <property name="MaxTransactionSize" value="300"/>
    <property name="NumberOfThreads" value="1"/>
    <property name="ReturnSingleResultSet" value="false"/>
    <property name="idempotent" value="false"/>
    </activation-spec>
    </endpoint-activation>
    </adapter-config>
    ---------------------ERROR---------------
    Invalid JCA transport endpoint configuration, exception: javax.resource.ResourceException: BINDING.JCA-12532 Cannot set JCA WSDL Property. Error while setting JCA WSDL Property. Property setIdempotent is not defined for oracle.tip.adapter.db.DBActivationSpec Please verify the spelling of the property.
    Thanks,
    Radha

Maybe you are looking for

  • Using cfhttp to read a page and write its contents to a file.

    Hi, I am trying to get a feed of my ebay store listings to load into froogle. Unfortunately, ebay provides the feed as a website not a file and froogle (via GoogleBase) needs the file to be submitted as an XML file. Is there a way to use something li

  • Contribute Won't Transfer Data

    After working well some weeks ago, Contribute CS3 now says it is not able to transfer data, so I can't access my site to edit. It does state that it can connect to the server, but then nothing happens. I've had to recreate a connection profile with t

  • Documentum Foundation Service (DFS) and webdynpro for java

    Hi All, Anybody have any experience calling web service created in documentum and using it in webdynpro for Java? Main problem I am facing is I cannot use ContextRegistryService. We used AXIS2 for generating the proxy and it is solved. Thanks Raktim

  • HFM Application Manual Migration w/o LCM

    Hi Gurus, I want to migrate the HFM 11.1.1.3 application running on Oracle 11g database from Production to Development environment. Both system are running on Windows 2003. The LCM is not an option here due to some internal issues. I need help how to

  • I suppose it's asking too much...

    for someone at Adobe to tell us just what the hell is going on