DB Adapter  Polling

Most times our bpel processes cannot update a database table (logically or otherwise) immediately after it is polled,rather it may have to deferred after until a few business
validations are done and depending on whether these were successful or not we would like to carry out a logical delete accordingly..
During setup of an adapter once the polling frequency is chosen,we are forced
to choose one of the following operations:
1.delete the rows that were read
2.update a field in the <polled> table(logical delete)
3.update a sequencing table.
Given my scenario I would'nt want to carry out any of these until later after all my business validations have been executed successfully.
Is there a way out ?
thanks

Hi -
Did a "NoAfterReadPollingStrategy" ever get implemented? I am doing DB polling and I don't want to do anything after the DB read.
I am running BPEL 10.1.2.0.2, and didn't see any options when creating a database partner link to do nothing after reading from the DB.
Also, I tried to write my own polling strategy, but kept getting an error because Jdev can't find the oracle.tip.adapter.db.inbound.DeletePollingStrategy to extend. I know I am probably just missing a JAR file somewhere...Does anyone have any ideas?
Thanks in advance.
Hi there,
for the next release we implemented a
ed a NoAfterReadPollingStrategy.
The polling strategies are pluggable though, so
, so until then you could write your own.
Try compiling this java class and putting it in
integration/orabpel/system/classes
package mycustompollingstrategy;
public class NoAfterReadPollingStrategy extends
oracle.tip.adapter.db.inbound.DeletePollingStrategy
public void destroy(Object object,
, oracle.toplink.sessions.Session topLinkSession) {
return;
In your wsdl change PollingStrategyName from
PollingStrategyName="DeletePollingStrategy"
to
PollingStrategyName="mycustompollingstrategy.NoAfterR
eadPollingStrategy
That should work.
Another way is to use the sequencing polling
strategy, which does not effect the source rows, and
then invoke a stored procedure later to clean up the
source rows based on the last_read_id in the
sequencing helper table.
Thanks
Steve

Similar Messages

  • 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.

  • 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

  • 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 ?

  • FIle adapter polling at a particular time

    Hi,
    I want to pull a file say  at 12.00 am  always from a FTP server.
    Is there any scheduler in XI where in I can start the adapter polling without manually activating the file adapter at 12.00 am
    Thanks,
    Sachin

    HI,
    As of now File Adapter doesnot support this. Refer SAP Note 821267 Question No 18.
    There is some workaround is there. Using BPM etc..
    Regards,
    Moorthy

  • 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

  • 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

  • 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

  • DB Adapter polling is stopped because of SQLServerException

    Hi
    I am doing a DB adapter polling to MS SQL server database. If I am decreasing my polling frequency too low say 5 seconds, I am getting the below error some times and the polling process is getting stopped.
    Query name: [Poll_xworlds_eventsSelect], Descriptor name: [Poll_xworlds_events.XworldsEvents]. Polling the database for events failed on this iteration.
    Caused by com.microsoft.sqlserver.jdbc.SQLServerException: Lock request time out period exceeded..
    This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-1222" to your deployment descriptor (i.e. weblogic-ra.xml). This polling process will shut down, unless the fault is related to processing a particular row, in which case polling will continue but the row will be rejected (faulted).
    Also can anybody tell me how to add this in weblogic-ra.xml and which weblogic-ra.xml. this is 11g.
    Thanks.

    Changing the retryInterval and retryCount for that adapter process solved the problem. Thanks. I assume there's no bad side effects if I set this to keep trying for an hour or so? That's how long the target DB may be down for backups.
    Thanks,
    Lon

  • Throttling using JMS Adapter poller threads

    Hi,
    We are trying to realize the throttling using JMS Adapter poller threads mechanism
    I came across this http://docs.oracle.com/cd/E14571_01/core.1111/e10108/adapters.htm (15.5 Oracle SOA JMS Adapter Tuning )
    adapter.jms.receive.threads
    Here is my configuration. I tried both the options listed below but none works for me.
    option 1 - here property is of type string
    <service name="JMSDelayMsgRead" ui:wsdlLocation="JMSDelayMsgRead.wsdl">
    <interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/jms/JMSDelayMessage/JMSDelayMessage/JMSDelayMsgRead#wsdl.interface(Consume_Message_ptt)"/>
    <binding.jca config="JMSDelayMsgRead_jms.jca">
    <property name="adapter.jms.receive.threads" type="xs:string" many="false">4</property>
    </binding.jca>
    </service>
    option 2 - Here property is of type integer
    <service name="JMSDelayMsgRead" ui:wsdlLocation="JMSDelayMsgRead.wsdl">
    <interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/jms/JMSDelayMessage/JMSDelayMessage/JMSDelayMsgRead#wsdl.interface(Consume_Message_ptt)"/>
    <binding.jca config="JMSDelayMsgRead_jms.jca">
    <property name="adapter.jms.receive.threads" type="xs:integer" many="true" override="may">4</property>
    </binding.jca>
    </service>
    I tried minimumDelayBetweenMessages parameter for throttling (which is based on time delay) and it works as expected but poller threads mechansim is more suitable for my situation.
    Here is my environment details
    I'm on SOA 11.1.1.4
    JMS Adapter consuming from a Topic (IBM MQ)
    Durable Subscription
    Can any one help me get throttling using poller threads working?
    Please let me know if you need further details about my configuration / logs etc.
    I posted this in two other forums but didn't get any responses on them so posting it here. I apologize for the repetition of this post in multiple forums.
    Thanks & Regards
    shashi

    Hi Raks,
    Check this note for JNDI configuration..
    802754
    "If a 3rd party JMS provider should be used then usually the "Name of JNDI initial context factory" must be adjusted. I.e. com.sap.engine.services.jndi.InitialContextFactoryImpl must be replaced by some.other.vendor.jms.jndi.InitialContextFactory In addition it is necessary to deploy the jar that contains the some.other.vendor.jms.jndi.InitialContextFactory with the aii_af_jmsproviderlib.sda SDA file. In addition, you must extend the server/provider.xml deployment descriptor in the relevant way. Refer to Chapter 11 of the XI 3.0 Configuration Guide for more information"
    You need to find out class "Name of JNDI initial context factory" for tibco  as mentoned in the note and deploy the corresponding JAR file.
    Also check this link for JNDI configuration parameters in the JMs adapter..
    http://help.sap.com/saphelp_nw04/helpdata/en/c1/739c4186c2a409e10000000a155106/content.htm
    Regards
    Anand

  • XI file adapter polling faster than poll interval

    Hi,
    We are facing a issue with the file adapter/authorization of the FTPUSER.
    We FTP a server and pick up a file from a particular folder.
    My polling interval is 2 minutes
    My retry interval is space.
    Processing mode : ARCHIVE
    We are archiving it on a Network attached server(NAS) mounted on our XI server.
    When XI polls for the first time it picks up the file but the sender file adapter shows following error in RWB.
    <b>2006-01-20 11:31:08 GMT: Error: Deleting of file 'ARUCSjnewb80.txt' failed - cannot proceed: FTPEx: ARUCSjnewb80.txt: Access is denied.</b>
    The picked up file gets processed but at the same time just within 12-13 seconds of the first poll XI picks up the file second time and then in another 3 seconds for the third time.
    After this the file gets archived thrice in the archive directory and then gets deleted from the source directory.
    We are unable to understand why XI is polling  again  after few seconds of the first poll.(As per my understanding it should have polled after 2 minutes).
    I am able to delete the file manually from the Ftp server.
    Could anyone give a pointer towards what we are missing or what probable reasons could be?
    authorization issue?( XIADM /ftpuser have full authorization)
    Some adapter setting?
    Regards,
    Sulakshana

    Hi,
    Could you let me know how frequent the file gets loaded to the FTP server.
    Is your file size too large to get loaded.. If so try to increase the polling interval. Also make sure that you have provided the polling time in sec and not in minutes...i.e for 2 minutes it should have been specified as 120 sec as polling interval
    Regards,
    Nithiyanandam

  • DB adapter polling error

    Dear All,
    I am getting below error while polling from a SQL Server DB
    Database Adapter PROTEST <oracle.tip.adapter.db.InboundWork handleException> Encountered a fatal exception while polling. Will continue polling but with minimal logging. Please investigate the fault and manually stop polling from the console if in development and this appears to be a modeling mistake. BINDING.JCA-11624
    Supplemental Detail DBActivationSpec Polling Exception.
    Query name: [PROTESTSelect], Descriptor name: [PROTEST.Mes2Otcmessage]. Polling the database for events failed on this iteration.
    Caused by java.sql.SQLSyntaxErrorException: [FMWGEN][SQLServer JDBC Driver][SQLServer]Invalid object name 'MES2OTCMessage'..
    This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-208" to your deployment descriptor (i.e. weblogic-ra.xml). This polling process will shut down, unless the fault is related to processing a particular row, in which case polling will continue but the row will be rejected (faulted).
    at oracle.tip.adapter.db.exceptions.DBResourceException.createNonRetriableException(DBResourceException.java:682)
    at oracle.tip.adapter.db.exceptions.DBResourceException.createEISException(DBResourceException.java:648)
    at oracle.tip.adapter.db.exceptions.DBResourceException.inboundReadException(DBResourceException.java:483)
    at oracle.tip.adapter.db.InboundWork.handleException(InboundWork.java:922)
    at oracle.tip.adapter.db.InboundWork.runOnce(InboundWork.java:826)
    at oracle.tip.adapter.db.InboundWork.run(InboundWork.java:578)
    at oracle.tip.adapter.db.inbound.InboundWorkWrapper.run(InboundWorkWrapper.java:43)
    at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:120)
    at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183)
    at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
    Caused by: java.sql.SQLSyntaxErrorException: [FMWGEN][SQLServer JDBC Driver][SQLServer]Invalid object name 'MES2OTCMessage'.
    at weblogic.jdbc.sqlserverbase.dda4.b(Unknown Source)
    at weblogic.jdbc.sqlserverbase.dda4.a(Unknown Source)
    at weblogic.jdbc.sqlserverbase.dda3.b(Unknown Source)
    at weblogic.jdbc.sqlserverbase.dda3.a(Unknown Source)
    at weblogic.jdbc.sqlserver.tds.ddr.v(Unknown Source)
    at weblogic.jdbc.sqlserver.tds.ddr.a(Unknown Source)
    at weblogic.jdbc.sqlserver.tds.ddq.a(Unknown Source)
    at weblogic.jdbc.sqlserver.tds.ddr.a(Unknown Source)
    at weblogic.jdbc.sqlserver.ddj.m(Unknown Source)
    at weblogic.jdbc.sqlserverbase.ddde.e(Unknown Source)
    at weblogic.jdbc.sqlserverbase.ddde.a(Unknown Source)
    at weblogic.jdbc.sqlserverbase.ddb9.a(Unknown Source)
    at weblogic.jdbc.sqlserverbase.ddde.v(Unknown Source)
    at weblogic.jdbc.sqlserverbase.ddde.u(Unknown Source)
    at weblogic.jdbc.sqlserverbase.ddb9.executeQuery(Unknown Source)
    at weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:135)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:888)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:598)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:526)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeCall(AbstractSession.java:980)
    at org.eclipse.persistence.internal.sessions.IsolatedClientSession.executeCall(IsolatedClientSession.java:131)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:206)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:192)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.cursorSelectAllRows(DatasourceCallQueryMechanism.java:74)
    at org.eclipse.persistence.queries.CursoredStreamPolicy.execute(CursoredStreamPolicy.java:64)
    at org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:395)
    at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1076)
    at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:740)
    at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1036)
    at org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:380)
    at org.eclipse.persistence.internal.sessions.AbstractSession.internalExecuteQuery(AbstractSession.java:2392)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1291)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1273)
    at oracle.tip.adapter.db.inbound.DestructivePollingStrategy.poll(DestructivePollingStrategy.java:456)
    at oracle.tip.adapter.db.InboundWork.runOnce(InboundWork.java:699)
    Plese help.
    Thanks,

    Hi,
    Please verify first that you can run a simple query (not polling) using the same data source.
    If not, probably there is a problem with the data source definition.
    If yes, verify your polling query is correct, restart SOA server and redeploy your process.
    Please post your results...
    Arik

  • Issue in Clustered environment DB adapter Polling

    hi all ,
    i have a table and one BPEL process is polling records depending on status value .
    Polled records are updated from N to P after polling .
    but , In cluster environment for One Row Multiple Instances are creating .
    Is there any way to ensure that in Cluster env. also for single Row , only one BPEL instance will be created ?
    I am using SOA 10.1.3.4
    i have used that "Distributed Polling" option in DB adapter .
    In JCA file i am using below configaration : -
    ActivationSpec="oracle.tip.adapter.db.DBActivationSpec"
    DescriptorName="PollTable.InterfaceData"
    QueryName="PollTable"
    PollingStrategyName="LogicalDeletePollingStrategy"
    MarkReadFieldName="STATUS"
    MarkReadValue="P"
    MarkUnreadValue="N"
    SequencingFieldName="ENTRYTIME"
    MaxRaiseSize="1"
    MaxTransactionSize="1"
    PollingInterval="10"
    NumberOfThreads="1"
    UseBatchDestroy="false"
    ReturnSingleResultSet="false"
    In that i am facing the Table Lock scenario .
    Even if i having 10 Records in database Row .Its locking all other 9 row and no instance are generating .
    Regards ...
    Edited by: 807572 on Feb 28, 2012 9:36 AM

    Use Reserved Value feature to avoid duplicate instances.
    Even if i having 10 Records in database Row .Its locking all other 9 row and no instance are generating .Do you see any error in $ORACLE_HOME/opmn/logs/<BPEL/ESBRT container>.log file? If you are having 1-M relationship defined in adapter then possibly you are hitting a known issue.
    Regards,
    Anuj

  • DB Adapter polling and logical delete: Process succeed but lock on database

    We have the following busisness flow, that reseult in a BPEL behaviour we did not expect. I hope that some of you had the same exeprience.
    The database adpater polls from a table new records based on a value (20) in a status field. When it finds records, it will process them and update the status field (20 -> 30).
    When we update from sqlplus a record, select for update on record with status 20, then We see in the logging that the update fails, but the process ran sucessfully. At the database we see an outstanding lock. If we commit the sqlplus session (after a few minutes), the status field is updated to 30.
    This is strange to me, the BPEL process was already sucessfully finished.
    Anyone seen this behaviour?
    Regards,
    Marc
    The logging
    <2006-05-02 13:06:37,052> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> SELECT STATUS,
    USERID FROM AQADM.TEST_UPDATE_VANUIT_BPEL WHERE ((STATUS = ?) AND ((STATUS <> ?) OR (STATUS IS NULL)))
    /ORA-
    <2006-05-02 12:03:21,473> <DEBUG> <default.collaxa.cube.activation> <AdapterFramework::Inbound> Delivery Thread 'JCA-work-instance:Database Adapter-0 pe
    rforming unsynchronized post() to localhost
    <2006-05-02 12:03:21,879> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> begin transact
    ion
    <2006-05-02 12:03:21,881> <DEBUG> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.TopLinkLogger log> UPDATE PROV.PR
    OV_USER_ACCOUNT SET STATUS_CMMAC = ? WHERE (PUAT_ID = ?)
    bind => [30, 81600]
    <2006-05-02 12:03:22,188> <WARN> <default.collaxa.cube.activation> <Database Adapter::Inbound> <oracle.tip.adapter.db.InboundWork runOnce> Exception dur
    ing polling of the database ORABPEL-11624
    DBActivationSpec Polling Exception.
    Query name: [prov_cmmac], Descriptor name: [PROVprocessmacaddress.ProvUserAccount]. Polling the database for events failed on this iteration.
    If the cause is something like a database being down successful polling will resume once conditions change. Caused by Exception [TOPLINK-4002] (OracleAS
    TopLink - 10g (9.0.4.5) (Build 040930)): oracle.toplink.exceptions.DatabaseException
    Exception Description: java.sql.SQLException: ORA-20220: MDB3 ERR: session not in admin mode
    ORA-06512: at "PROV.PUAT_BUR", line 90
    ORA-04088: error during execution of trigger 'PROV.PUAT_BUR'

    The following entry:
    <MESSAGE>
    <HEADER>
    <TSTZ_ORIGINATING>2008-12-11T17:50:20.119+01:00</TSTZ_ORIGINATING>
    <COMPONENT_ID>tip</COMPONENT_ID>
    <MSG_TYPE TYPE="TRACE"></MSG_TYPE>
    <MSG_LEVEL>16</MSG_LEVEL>
    <HOST_ID>u514603.cmcdev.be</HOST_ID>
    <HOST_NWADDR>10.151.70.3</HOST_NWADDR>
    <MODULE_ID>esb.server.service.impl.inadapter</MODULE_ID>
    <THREAD_ID>18</THREAD_ID>
    <USER_ID>orasoad</USER_ID>
    </HEADER>
    <CORRELATION_DATA>
    <EXEC_CONTEXT_ID><UNIQUE_ID>10.151.70.3:11323:1229014220014:8</UNIQUE_ID><SEQ>0</SEQ></EXEC_CONTEXT_ID>
    </CORRELATION_DATA>
    <PAYLOAD>
    <MSG_TEXT>JCA: &lt;oracle.tip.adapter.db.TopLinkLogger log> SELECT UNIQUE_SUPPLIER_ID, SUPPLIER_NAME, SUPPLIER_NUMBER, NUMBER_TYPE, CM_SUPPLIER_TYPE, VAT_REGISTRATION_NUM, M_NUMBER, ADM_ID, OFB_PARTY_ID, CENTURY, LANGUAGE, ATTRIBUTE_CATEGORY, SPARE6, SPARE8, SPARE9, SPARE10, SPARE11, SPARE12, SPARE13, SPARE14, SPARE15, STATUS, ERROR_CODE, FILE_ID FROM XXCM.XXCM_AP_SUPPLIERS WHERE (STATUS = ?) ORDER BY UNIQUE_SUPPLIER_ID ASC FOR UPDATE NOWAIT
         bind => [MINE[undef:instance]]
    </MSG_TEXT>
    </PAYLOAD>
    </MESSAGE>
    can be found in $ORACLE_HOME/j2ee/oc4j_soa/log/oc4j_soa_default_group_1/oc4j/*.xml
    Regards

  • File adapter polling frequency is not consistent in SOA 10g!

    Friends,
    I have used file adapter for polling files in a service in SOA 10G env. with polling frequency 3600 secs. However, i have noticed file polling is not happening at 60 mins interval, instead some times files getting polled in less than 30 mins but again after sometime its polling correctly in 60 mins interval. I am not sure what could be the reason but i need a solution urgently. Please help!

    Could be the managed servers in the cluster are not in sync.
    I faced DB JCA adapter sync issues because of Oracle soa suite bug.
    You could check whether any sync issues are there with File adapters.

Maybe you are looking for

  • HT204053 how do i get all pictures from my phone in icloud to my macbook

    I recently had to buy a new hard drive for my macbook and I am having problems transferring photos.  How can i get my photos from my phone in iphoto?  I had

  • (INVOICE) PAYMENT BLOCK DUE TO QUALITY REASON

    Dear All, We are working on QM implementation for one of our client. The process is as follows 1.     MIGO with Mvt 103 2.     Inspection lot is generated after Mvt 103 3.     Usage decision for inspection lot. Lot accepted  and moved to Unrestricted

  • Validating XML against an external DTD

    I've three questions concerning the validation of an XML file on Checkin: 1. Can the SimpleXMLParser validate an XML file against an external (internal) DTD. 2. How do I have to construct the !DOCTYPE Reference in my XML file for the parser to find m

  • Retention Policy to start a Workflow not working in sub sites.

    HI, SharePoint 2010 I have created a Retention Policy on a content type. It involves the stage to start a workflow. I have used a reusable workflow on the content type. The Retention Policy works on the main site collection. However the stages is sho

  • New install GDM wrong path..

    Hey, I had this exactly problem when installing gdm half year ago.. i cant see why it hasnt been fixed.. When installing gdm, gdmsetup ends up here: /opt/gnome/sbin/gdmsetup which makes problems.. since the system wont find it when running through te