Instances created before db adapter poll completes.

Hi,
We have been seeing a couple of instances where these instances seem to have been created before the database adapter could finish off it's polling cycle.
The DB Adapter in our case does a logical delete and updates a column with 'Y', the timestamp of which is updated in another column of the same table.The instance when it gets created goes and updates another timestamp in the same table.
The problem is that in some cases the timestamp of instance is greater than the timestamp of database adapter leading to other issues.
Can anyone explain what is happening here and any possible resolution for the same.
Thanks,
Shishir

Hi Shishir,
If I understand your scenario correctly then below happens:
DB Adapter polls a table and picks up the records for processing. After picking up it internally updates a particular column (logical delete) as configured in Adapter configuration. Then in BPEL Adapter process there is a step where you update another column in same table (timestamp). And when you see Adapter process instance in BPEL console, you observed that BPEL process instance creation timestamp > update database column timestamp for the processed record.
Is this your problem? If yes then its a normal behavior.
When the BPEL Adapter process is instantiated then its in memory and is only dehydrated when transaction is committed, in other words the in memory BPEL instance will be persisted to BPEL internal database when the process is finished or if it encounters explicit checkpoint or wait kind of activities. And when this BPEL process is dehydrated that is the process instance creation time which you see on BPEL Console.
Please let me know if this clarifies your problem or otherwise explain me further if I understood it wrong.
Thanks.
Regards,
Ankit A.
http://fusionmusings.blogspot.com
Edited by: AnkitAggarwal on Apr 14, 2010 2:00 AM

Similar Messages

  • DB adapter polling in OSB

    1. In a clustered environemnt, we need to use "Distributed polling" in DB adapter to make sure the multiple cluster instances are not polling for the database at the sametime. If "Distributed polling" can achieve that, what is the need to have singleton property set for the DB adapter in the composite.xml
    2. For achieving DB adapter polling in osb, we need to create the adapter in bpel and then export them to osb project. In such OSB project, where do we set the singleton property ?

    Thanka Ananth.
    I assume active-passive cluster setup means,
    there will be a cluster with only one osb or bpel managed server (active cluster)
    There wil be another cluster with only one osb or bpel managed server (passive cluster).
    so when there is some data inserted into the database, there will be only one managed server (available on active cluster) will be available to poll for the recored. Passive man server does not poll for this record. I assume this is the default behaviour. If such is the case, then what is the use of setting this singleton property ?

  • BPEL: invalid namespace error with DB adapter polling and java embedding

    Hello
    I'm using bpel 10.1.3.1.0, and I'm experiencing the following problem: I'm am not able to use the SetTitle() function in a process which polls for records using the db adapter.
    Steps to reproduce the problem:
    - I create a very simple bpel process which poll for records in a table.
    - I deploy it, write manually a record in the polled table and the process start.
    - I can see the record picked up through the visual flow in the console
    - everything looks ok and the process ends correctly
    - now I add a java embedding activities just after the receive
    - I set the instance title like this: setTitle("Go");
    - redeploy, write a record in the polled table and the process start.
    - but the process ends in error with the following message "XMLDOMException has been thrown. invalid namespace for prefix xmlns"
    And there is no way to make it work. Consider:
    If I put the same java embedding activity in another process, for example a simple asynchronous process which just copy the input to the output, and I run from the console, the instance title is set as I want ("Go")
    If I remove the three lines from the polling process
    <bpelx:exec name="Java_Embedding_1" language="java" version="1.3">
    <![CDATA[setTitle("Go");]]>
    </bpelx:exec>
    then the process is executed correctly again. I add them again and then namespace error.
    Whatever statement I put in the java embedding activity (for example a string concatenation or even just a comment I have the same result: invalid namespace for prefix xmlns.
    Does anybody has a suggestion to evercome the problem? I need to set the title because its a mess to find out which instance processed a specific record.
    Thanks by
    Paolo

    I made a lot of further tests, and I can say the problem is related only to the database adapter polling mechanism.
    If I create an asynchronous process, with any kind of database activity (for example select) I can set the title normally.
    If I create a process which start with database table polling, then I cannot use the java embedding.
    try this:
    - create BPEL empty project
    - drop a database adapter service and follow the wizard:
    - select a connection (I tried both oracle or sqlserver connection)
    - select "poll for new or changed record"
    - select any table empty or with few record inside (1 or 2)
    - press next 4 times
    - chose delete record after read (press next)
    - chose order by "no ordering" in polling options (press next 2 times)
    - now drop a receive activity on the process, and connect with the polling partner link
    - drop a java embedding and write any valid java statement
    - deploy; if the table is empty, write a recod in the table
    - the process is instantiated, but the it fails in the --> receive <-- activity with "invalid namespace" error

  • Database Adapter Polling

    I am using Jdeveloper 10.1.3.1.0 to do the database polling. The adapter polls two tables joined by the foreign key.Then it will update the status code as logic deletion. However, when I tried to set the database rows per xml document to 1 on step 10 of 11 of the polling options. However, when I tried to set database row per transaction to 50, it won't allow me. My understanding is that this 50 will set the database commit every 50 records. The wizard basically stopped there. Only after I changed it to unlimited, it proceeded.Can anybody help me?

    Hi,
    The triggering instances will not depend on the Database rows/transaction but will only depend on the Database rows/xml document.
    Database rows/transaction is internal to the DB and the DB adapter.
    If u keep Database rows/transaction as 200 and no. of rows/ xml document as 100 and 1000 rows are to be processed, then it will create 10 instances.
    However if you have 1000 rows for processing DB adapter will run a cursor in a loop to pick up 200 rows from the 1000
    rows 5 times (this is a batch setting between DB and the DB adapter and will distribute the load of picking 1000 rows at a time into 5 transactions) and then these 200 rows will be distributed into 2 BPEL instances of 100 rows (this is a batch setting between DB adapter and BPEL).
    Hope this clarifies.
    With Regards,
    Harshwardhan

  • File Adapter polls all the files from the directory when deployed again

    Hi,
    File Adapter polls all the files from the inbound directory irrespective of the timestamp when deployed again.
    For ex. when the BPEL process with file adapter is deployed, it starts polling the directory based on the timestamp as and when the directory is written with the files. I did not opt for deleting the files after read by the File Adapter.
    But, when BPEL process is modified and deployed again, this time, the file adapter picks up all the files in the inbound directory and doesn't consider the timestamp.
    My guess is that it should not pick all the files but based on timestamp only.
    I guess I can observe the same behavior if I bounce the Application Server also
    Do I have an option to achieve this?
    Thanks,
    Sasi Bhushan.

    try this:
    1- create a File object for the directory. (look at isDirectory() )
    2- create a File[] that represents the files in that directory. (.listFiles())
    3- if (file[x].isDirectory()) {recursive method call;}
    4- else {
    process file;
    If you want more help--do some work on it, and come back with specific questions relating to specific lines in your code and specific error messages you've been receiving.

  • BPEL Console doesn't show any instances created

    Hi,
    We are using file protocol to read the files from trading partner into B2B. File is successfully processes by B2B. I can see that in reports.
    Then I have defined a BPEL process to Dequeue the messages from B2B using AQ Adapter, transforms and places the files in the local file system.
    The BPEL process is simple flow with one receive , transform and invoke activity.
    I have configured AQ adapter using WSIF browser. I can see the deployed document definition in browser.
    I have the TP agreement deployed, BPEL process deployed, but I don't see the 850 file processed. BPEL Console doesn't show any instances created. How would I know where what went wrong?
    Please help.

    Try using java oracle.tip.adapter.b2b.data.IPDequeue to dequeue the message and see if you can dequeue
    Then you'l be able to pin point if the issue is with your BPEL or with B2B Queue's
    Kalyan

  • File deleted but no instance created

    Hi,
    I have created a process using a file adpter to read files and a FTP adapter to put the file. File adpeter is configured to delete the files after reading.
    The process deletes the files after reading. However, there is no instance created for the process and there is no file put to the FTP location.
    This phenomenon is happening only when the FTP information in the oc4j-ra.xml is:
    <connector-factory location="eis/FtpAdapter" connector-name="FTP Adapter">
    <config-property name="host" value="xxx.xxx.xxx.xxx"/>
    <config-property name="port" value="21"/>
    <config-property name="username" value="xxxxxxx"/>
    <config-property name="password" value="xxxxxxx"/>
    <config-property name="serverLineSeparator" value="\n"/>
    <config-property name="serverLocaleLanguage" value=""/>
    <config-property name="serverLocaleCountry" value=""/>
    <config-property name="serverLocaleVariant" value=""/>
    <config-property name="serverEncoding" value=""/>
    <config-property name="useFtps" value="true"/>
    <config-property name="walletLocation" value=""/>
    <config-property name="walletPassword" value=""/>
    <config-property name="channelMask" value="both"/>
    <config-property name="securePort" value="990"/>
    </connector-factory>
    The above configuration is wrong. However, if the files are getting deleted from the source location, then we should as well get the instance created with the an errored state.
    Message was edited by:
    user486065
    Message was edited by:
    user486065

    Without seeing logs I can't help you. But I bet there was an exception which rollbacked the whole transaction, even the audit trail. Therefore you don't see instance in BPEL console (and because file and ftp are non transactional adapters you ended in inconsistent state).
    this can be caused by fact that your BPEL process is synchronous and you defined probably inMemoryOptimization to true. Which is valid just for synchronous (or transient) processes and basicaly it improves performance, because process is not dehydrated (it depends on completionPersistPolicy parameter). If inMemoryOptimization is false then this is good candidate for further investigation.
    completionPersistPolicy says in which cases it should save audit trail.
    and completionPersistLevel says how much data should be saved.
    Have a look into BPEL admin guide for further explanations, because this was very-very lighweight explanation. http://www.oracle.com/technology/products/ias/bpel/documents/bpel_admin_10.1.3.1.0.pdf
    But don't forget to check logs (you may check log4j logging level for your BPEL engine).

  • Unable to create Oracle Apps Adapter whose API parameters are Records

    Hi All,
    I face an issue in creating an Apps adapter whose API parameter's are of type Records. From previous posts I came to know that its one of the bug in JPublisher.
    I'm new to this term. Can you please provide how to create this adapter?
    Exception raised: The Wrapper procedure could not be found in the package for the schema.
    Thanks
    Karthick

    where are you getting this error ? Sometimes some API's cannot be called from Oracle Apps Adapter, will be getting some JPublisher Error, try configuring the same API from Database Adapter, this workaround works sometimes....
    If you get the error in a different instance while it was working in earlier instance, read further...
    Generally when you are working with the oracle apps adapter, and for any API, the input paramaters are record types, there will be a wrapper package created for the API you have configured. So, this error comes when you migrate the composite to a different instance, make sure you have moved that wrapper package also to the new database instance, if you do that, this error will go.
    Hope this helps,
    N

  • DB Adapter polling does not work in BPEL (10.1.3.4)

    I've created a DB Adapter to poll a single database table, using the Sequencing polling strategy. I've set up a last_updated_date in my root table, and last_read_date in the sequencing table. The adapter wizard generates this sql:
    SELECT BVUNAME, FNAME, LNAME, JTITLE, PROCESS_ID, LAST_UPDATED_DATE FROM XXONT_WS_CONTACTS WHERE ((LAST_UPDATED_DATE > #LAST_READ_ID) AND (LAST_UPDATED_DATE < SYSDATE)) ORDER BY LAST_UPDATED_DATE ASC
    Why is this generating "#LAST_READ_ID" and not "#LAST_READ_DATE"? Is this why the BPEL receive activity does not ever return anything?

    Hi there,
    #LAST_READ_ID is an internal parameter marker name. For simplicity its name is always LAST_READ_ID so that is not the problem. Its value is obtained by doing a select from the sequencing helper table, from the column indicated by SequencingValueColumn (in 10.1.3 SequencingValueFieldName).
    Make sure your sequencing table is setup correctly and look at the logs to see if there are any exceptions.
    Thanks
    Steve

  • DB adapter polls all the records regardless of the MaxTransactionSize

    Hi All,
    I have a requirement that I need to poll only 10 records per minutes from DB2 database, regardless of how many ever records in the database at the time of the polling. I used the DB polling with custom sql, to fetch only first 10 records, as well as MaxTransactionSize set to 10 and PollingInterval to 60 (sec), PollingStrategy as LogicalDeletePollingStrategy. But when I test it out, if I have 100 records in the database, it updated all 100 records with the MarkReadValue and gave me all 100 records. I tried with disabling the SkipLocking as well, but doesn't seem to work. I also tried using the throttling in DB adapter in the composite.xml, but though the composites are showing up one by one based on the throttling time interval, in the database, it updated all the records right away, which is unacceptable as per business logic. Can someone please guide me how I can implement this? Thanks in advance.
    Note: I am using SOA 11.1.1.5. In 10.1.3.4, we have implemented this and it is working well, but can't make it to work in 11.1.1.5.
    Hruthayah

    Thanks for responding, Narsing.
    Please Note that MaxRaiseSize property doesn't behave the same in Database Adapter as it does in File Adapter Polling...
    MaxTransactionSize = Database Rows Per Transaction
    MaxRaiseSize = Database Rows Per XML Document
    In Database Adapter, MaxRaiseSize means the maximum number of records it can get in an XML Document...Yes, I do understand that, and that is why since I want one record per each instance, I have MaxRaiseSize set to 1.
    in the steps of configuring DB Adapter, you can select the 'Do Synchronous Post to BPEL' option in the 'Operation Type' screen in the adapter configuration wizard. This will generate an empty response message type for output variable. In the BPEL process add the reply activity at the end of the process by selecting output variable and also add the reply activities in the end of catch and catch all blocks in the exception handling.I had done what you have suggested. But I have seen two issue.
    1. Although only one instance is being showing up for the first time in EM, in database, all the records are being marked as "Reserved". (which is unacceptable as per the business requirement)
    2. Next instances are showing up right after first one is done. (meaning, all the instances are showing up one by one without waiting for the polling interval)
    Is this because of the DB2 database? I even tried updating the "PoolingService-or-mappings.xml" file to include the custom sql so that it will exactly fetch first 10 records.
    <query name="EOneEvents" xsi:type="read-all-query">
    <timeout>0</timeout>
    +<call xsi:type="sql-call">+
    +<sql>SELECT E1GS2A, E1VALU, E1UKID, E1ACTN, E1AA20, E1GPSP, E1LL, E1GS1A, E1GS1B, E1HBST1, E1HBST2, E1HBST3, E1HBST4, E1HBST5, E1CRTU, E1CRTJ, E1CRTT, E1WRKSTNID, E1HBOPID, E1UPMB, E1UPMJ, E1UPMT, E1JOBN, E1PID FROM F57MTE01 WHERE ((E1GS2A = 'LOT') AND (E1GPSP = '0')) ORDER BY E1CRTJ, E1CRTT ASC fetch first 3 rows only</sql>+
    +</call>+
    <reference-class>PollingService.F57mte01</reference-class>
    <cache-usage>primary-key</cache-usage>
    <lock-mode>none</lock-mode>
    <container xsi:type="list-container-policy">
    <collection-type>java.util.Vector</collection-type>
    </container>
    </query>
    </queries>
    I would appreciate if you can guide me if I am doing something wrong here.
    Hruthayah

  • Lite database seems to crash after creating a database adapter

    Hello,
    I'm using the SOA suite 10.1.3.3.0 and Oracle Lite database that comes with it.
    I'm designing in JDeveloper with the same version number.
    After creating a database adapter, the database gives back the exception:
    "Internal Error: Invalid Connect String".
    A restart fixes it, but i don't feel like restarting each time obviously.
    Pls help.
    Message was edited by:
    user614695

    Hello,
    Is this a Bug ? Has anyone else faced this error?
    It's not a bug, it's working as intended. Contained users don't have instance level permissions and cannot "login" to the instance (which is what the "browse" button is attempting). In order for it to work, the database name must be in the connection string
    (which with the browse button, it will not be).
    Welcome to contained users, they aren't for everyone.
    Sean Gallardy | Blog | Microsoft Certified Master

  • Blocking DataFactory.INSTANCE.create(Class)

    Hello,
    we are using SOA suite 11g 1.1.2 and have some issues with SDO objects. Our EJB web service returns a SDO object and calls commonj.sdo.helper.DataFactory.INSTANCE.create(Class) to construct it. This call however blocks and jrockit mission control revealed
    that all cpu is consumed within org.eclipse.persistence.sdo.helper.delegates.SDODataFactoryDelegate. In a debugging session we found
    that the following loop never exits:
    (in org.eclipse.persistence.sdo.helper.delegates.SDODataFactoryDelegate)
    public DataObject create(Class interfaceClass) {
    ClassLoader contextLoader = xmlHelper.getLoader();
    ClassLoader interfaceLoader = interfaceClass.getClassLoader();
    ClassLoader parentLoader = contextLoader;
    boolean loadersAreRelated = false;
    *while ((parentLoader != null) && (!(loadersAreRelated))) {*
    if (parentLoader == interfaceLoader)
    loadersAreRelated = true;
    parentLoader = contextLoader.getParent();
    It seems there's a mixup with the classloaders here and the exit condition is never satisfied.
    The flow of events is as such: BPEL process ---(ejb binding)---> stateless session bean ----> DataFactory.INSTANCE.create(Class)
    Inside the SCA-INF/lib folder of the BPEL we include a jar that contains the .class files of the EJB's remote interface.
    The problem can be resolved by calling SDOHelper.INSTANCE.defineSchema() right before every DataFactory.INSTANCE.create(Class) invocation but this is a very expensive call...
    Can anyone suggest why this happens and/or some solution?
    Thanks

    Were you able to fix this ? I am getting same exception
    Edited by: Sam on Apr 12, 2012 10:33 AM

  • Syncing iCal reccuring events created before DST

    I have a problem with my iCal reccuring events created before the transition to Daylight Saving Time. On my iPod nano they appears to stay as if they were still before DST shift (in non-DST time zone). For instance, if I have a weekly meeting at friday 5:00 PM, I expect it to be 5:00 PM independently of whether I'm in a DST-shifted time or not. On my iCal everything seems to be fine: the meeting is still 5:00 PM, but my iPod nano thinks that the reccuring meeting should be DST-independent (6:00 PM).
    Temp workaround: Settings > Date & Time > Set Time Zone > Set a time zone without DST. However, after syncing, the timezone will be resetted to DST anyway.
    Hope this issue will be fixed in future iPod software releases.
    iBook G4 12"   Mac OS X (10.4.5)   iPod nano 4GB white, s/w 1.1.1

    I am having the same or a similar problem.
    I use iCal on Snow Leopord and can't seem to get calendar events to sync when created in iCal with my BB or those created on the BB to show in iCal.
    I use gmail, and have gmail added as the only account in iCal.
    When I connect my BB via USB, Desktop Manager indicates that one of the selected calendars is read-only and can only be synchronized from my computer to my device. How do I correct this?

  • Catalog disappeared in BCC which is created before

    Hi All,
    I created one catalog in BCC, after I deployed (incremental) it successfully. I'm able to view the catalog data in Versioned and Switching Schemas.
    After that, I opened BCC to modify the existing catalog which is created before. But It disappeares. Can you please help me to resolve this issue.
    How can I view the catalog which is created before.
    Thanks,
    Kushal.

    Please make sure the project (which is successfully deployed) is verified and (Production)deployment is confirmed . If any workflow steps are not complete, changes made will not be available to other projects.

  • The new updated version of iMovie 10 won't let me open my previous files I created before the update today. I have a wedding that I'm trying to finish and deliver and now I can't because that file version won't open. I keep getting an error message

    Hello,
    Please help me figure this out. I'm very unhappy at the moment. I'm fustrated and don't have any idea how to revert to the original version before the update was done on iMovie 10. I NEVER hated APPLE until NOW!! I love APPLE products and apps so please help me stay in that mindset. So I worked on some movie projects when I got my macbook pro 6 months ago. I update reguarly. I saw the update prompt and honestly, I did not think I would have ANY issuess with opening my previous files that I created only a few months ago with this updated version.The new updated version of iMovie 10 won't let me open my previous files I created before the update today. I have a wedding that I'm trying to finish and deliver and now I can't because that file version won't open. I keep getting an error message and the iMovie app closes. Last night I saw the file and tried to open it but no luck. Error message came up again. I reboot and turned off my laptop for the evening and tried again just now but nothing!! I need that video. My job depends on it! I worked so hard on this wedding video and now it's lost and won't open. I work another job and don't have much time. I really don't want to start all over again. Please help me. Thanks so much for your assistance.
    Fustrated APPLE customer
    Jolly A. Rupp

    I also have Jolly's problem. I found the iMovie 9.0.9 folder and tried to launch the older version of iMove. It would not launch. I removed all of the iMovie preferences from the Preferences folder, removed iMove 10 from the applications folder, and restarted my Mac. iMove 9.0.9 still won't launch and I can't access my videos created with the older version of iMovie. Is there a way to uninstall iMovie 10 and reinstall iMovie 9.0.9?
    I am running Yosemitie on a  iMac.
    Paul

Maybe you are looking for

  • Cannot update data in a demantra worksheet..

    Hello all, I am not able to update data in a demantra worksheet - referred to Oracle Metalink https://metalink.oracle.com/CSP/ui/flash.html#tab=KBHome(page=KBHome&id=()),(page=KBNavigator&id=(bmDocID=459527.1&bmDocType=PROBLEM&viewingMode=1143&bmDocD

  • Bridge CC (German) doesn't display aperture values correctly

    Hi everyone, the German edition of Bridge CC still seems to have the same bug as Bridge CS6: Bridge displays aperture values as integer values both in the filter column and in the metadata box, e.g. f1.4 is shown as 1.0, f2.8 is shown as 2.0, f5.6 is

  • Adobe photoshop cs4 graphics card acceleration help!

    Need a little help, everytime i start cs4, it says "adobe photoshop cs4 now includes graphics card acceleration.  we recomend you vist your video card manufacturers website and download and install latest drives. I am running vista 64 bit and a ati r

  • Why all RAW files open as 0.1MP images

    Help!  Suddenly All Canon RAW files shown as small 0.1 MP images in ACR 8.3 on Mac OS 10.9 (rather than their normal 20 megapixel size).  Even ones that I successfully edited before.  This does not occure on my iMac running the same OS and using the

  • Render File Offline; Project in a Loop

    I was rendering a complex part when FCX stopped and said a render file was offline or something. It was so many steps ago, I forget exactly. Eventually, I had to force quit FCX because it "froze up" on me. I went back to the autovault and got a sligh