DB Adapter Polling Parameters Issues

Hi All,
We have a DB Adapter which polls on a table at every 60 seconds.we set database rows for transaction to 1 in the wizard.
but when 10 records inserted into the table,DB adapter is picking up all rows at a time. this is not the expected functionality.
I want to poll each row in table after 60 seconds..
Is there any Workaround or Property need to set
Regards,
Sudhakar.M

Hi All,
Issue resolved by setting the <property name="NumberOfThreads" value="1"/> value to 10
Thanks

Similar Messages

  • 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

  • Sender JDBC Adapter Select/Update Issue

    Dear All,
    We have configured a Sender JDBC Adapter to Poll data from the DB2 tables. It is working fine and both the select and the update queries written are also getting properly executed and are changing the status of the flag from Y to N once read from database.
    In the communication channel ->
    select * from <table> where flag = 'N'.
    update <table> set flag = 'Y' where flag = 'N'.
    But I have one doubt after executing the select query some new data comes into the table of status flag 'N"., then will this unselected data will also be updated to 'Y' .
    The question is while we do a select and update from XI on the DB table and at the same time there is an insert happening into the table from the other end how will the adpater behave in this case.Will it result in missing of some records during next select/update transaction from XI..
    Your inputs will be appreciated.
    Regards
    Amit

    Amit
    Did you ever get a solution to your question ?
       Sender JDBC Adapter Select/Update Issue  
    Posted: Apr 24, 2008 2:29 PM           Reply 
    Dear All,
    We have configured a Sender JDBC Adapter to Poll data from the DB2 tables. It is working fine and both the select and the update queries written are also getting properly executed and are changing the status of the flag from Y to N once read from database.
    In the communication channel ->
    select * from <table> where flag = 'N'.
    update <table> set flag = 'Y' where flag = 'N'.
    But I have one doubt after executing the select query some new data comes into the table of status flag 'N"., then will this unselected data will also be updated to 'Y' .
    The question is while we do a select and update from XI on the DB table and at the same time there is an insert happening into the table from the other end how will the adpater behave in this case.Will it result in missing of some records during next select/update transaction from XI..
    Your inputs will be appreciated.
    Regards
    Amit

  • JDBC sender adapter polling data more than once within one polling interval

    Hi,
    Our sender communciation channel is polling data twice in one polling interval, hence triggering the corresponding BPM twice.
    The polling interval for the channel is set to 30 mins.
    We dont have an update query and use <test> instead. Currently there is no provision to use an update query in the source system.
    Intermitently the polling happens within an interval of few milliseconds, because of which we are in doubt whether the use of Update query will solve our problem
    Additionaly in the BPM, we have one channel which deletes the data from source system after the processing is complete by the BPM, but the second BPM is getting triggered before the deletion step is being executed in the first BPM.
    Please Advise how we can stop the channel from polling data twice.
    Thanks,
    Merrilly.

    Hi Merrilly,
    Please ty to set an advanced mode option in the table(for sender
    channel configurations) as follows:
    Key name is "clusterSyncMode" and its values are either "scheduler" or
    "none".(both are without quotes and case-sensitive)
    Default value is "scheduler", this means it prevents 2
    messages being generated regardless of 2 server nodes. This is true,
    even if you do not add anything in advanced options table.
    Also are more information about this parameter of file adapter, what
    is the same for jdbc:
    #801926 - XI 3.0 File Adapter: Additional Parameters
    Regards
    SK

  • 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

  • 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

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

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

  • How do i extract Delimited falt file-Sender File adapter FCC Parameters

    Hello,
    I'm trying to extract data from a flat file. The file is built as tab delimited. I cant find the option of tab delimited in the XI Sender File adapter FCC Parameters. How do i extract tab delimited file?
    Please Advice,
    Rajesh

    HI,
    You can use Fieldseperator as '0X09'...
    Look at this blog...........you can solve this problem...
    NAB the TAB (File Adapter)                              
    Thanks,
    Madhu
    Edited by: Madhu sudhan Reddy on Jul 28, 2008 9:02 AM

  • 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

  • How does the adapter specific parameters gets filled up?

    Hello,
    How do I check adapter specific parameters?
    like, I am making the Soap action parameter to dynamically fill in the receiver soap adapter.
    I want to check if the correct (one of the 4 actions) action was filled in action field
    how do I check?
    thanks
    nikhil.

    Hi,
    You need to test the scenario from RWB testing to get the proper results about the dynamic settings for adapter specific parameters.
    Refer
    Accessing Adapter-Specific Attributes through User Defined Function
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/70c89607-e4d9-2910-7280-f6746e964516
    Dynamic Configuration of Some Communication Channel Parameters using Message Mapping
    /people/william.li/blog/2006/04/18/dynamic-configuration-of-some-communication-channel-parameters-using-message-mapping
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/70c89607-e4d9-2910-7280-f6746e964516
    Re: Adapter-Specific Message Attributes
    setting adapter specific message attributes
    Thanks
    Swarup

  • 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

Maybe you are looking for

  • How to reserve a prefix namespace

    Hello, I need your help in understanding how can we reserve a prefix namespace for our UDTs and UDFs. We are designing several addons, and we would like their UDTs to carry our company name. For example @be1s.TableName How can we reserve this namespa

  • Ps touch update galaxy note

    Bonjour jai acheter  une galaxy note  10.1 2012 N8010,  PS touch venais avec  mais pas de mise a jour,  toujours en 1.4.2 alors que vs etre a la 1.5.x Merci

  • Trouble with migration assistant going from 10.5.8 to 10.6.1

    Hi, I have a macbook pro running 10.5.8 and just got a new macbook running 10.6.1. I'm trying to run the migration assistant. It gets to the point where it says 'preparing information' on each computer and then it seems to just hang. I've let it go f

  • Mi iphone 3gs se quedo pegado en la manzana

    Disculpen Por La mol 3gs estia Pero mi iphone de 8 gb sí quedo Pegado en la manzana de como le sí puedo HACER párr solucionarlo ayudenme porfa Estoy desesperado

  • My computer keeps stopping my download for photoshop CC at 41%

    My computer keeps stopping my download for photoshop CC at 41% - I have tried on two different web browsers and have closed all the apps and web browsers on my computer.  I have tried downloading it 7 times and can not get it to get past 41%, I am ge