PL/SQL Poll

Hello,
I wrote a pl/sql package that generates web html-based polls. if you're interested - please write me at [email protected] and I will send it to you.
The package was test in oracle 7.3.2 and owas 3.0 and in oracle 8.1.5 and oas 4.0.8.1.

I found a simple solution that works but I would like to hear if anybody can see any problems with this approach:
I create a dummy table with one row. I create a partner link that polls the dummy table every 5 minutes. The operation on the table is an update, but the Read value and Unread value are the same!
Every 5 minutes BPEL kicks of a process that calls a PL/SQL procedure etc. There will always be a row in the dummy table and as long as my polling interval is longer than the processing time of the flow I will never have more than one process in-flight at a time. This should ensure that the solution is robust.
Regards Pete
Message was edited by:
Peter Lorenzen
Message was edited by:
Peter Lorenzen

Similar Messages

  • Biztalk WCF-SQL polling sample using a FOR XML Path

    I've been searching in the web for a sample that uses FOR XML "PATH" to poll the SQL database . The result returned from my query is a parent child data and FOR XML PATH is the best choice to structure it in that way . I guess I'm missing something while
    generating the schemas from this stored procedure.
    I guess Dan Rosanova has touched on this concept (http://social.technet.microsoft.com/wiki/contents/articles/3480.aspx)
    , but its using XML Auto. Again there is no sample available so makes things a bit difficult.
    Can someone point to a sample walkthrough , generating the schemas and then later using it in the application.
    Thanks
    Anthstone

    I used XMLPolling and it worked for me. you can go for XMLPolling. Steps to be followed:
    1) Create the SP which will have the SELECT query similar to below:
    ;WITH XMLNAMESPACES (default 'http://yourcustomnamespace')
     Select * from Employee FOR XML PATH('YourCustomRootNode') 
    2) Create a schema out of the table using the following query
    Select * from Employee for
    xml
    auto,
    xmlschema 
    3) Re-name the root name and namespace as per you mentioned in point#1 (YourCustomRootNode)
    4) Create an Envelope Schema and refer the schema from point#3. Also make a note of the root node name and namespace that we need to specify
    in the admin console.
    5) Assign the Body XPath to debatch. Refer
    this.  Deploy the solution.
    6) In the Admin console, add the Root Node Name and namespace mentioned in point#4 under "XmlStoredProcedureRoodNodeName" and "XmlStoredProcedureRoodNodeNamespace"
    There you go. I did this for debatching. You can do for nomarl batch message instead of Envelope create a normal document schema.
    Thanks
    SKGuru

  • DB Adapter -Polling SQL and  After Read SQL:

    Hi..,
    I have DB adapter Configured for logical delete. Here is the SQLs
    Polling SQL:
    SELECT LOG_ID, ORG_ID, ROUTE, ATTRIBUTE9 FROM GETS_UX.GETS_UX_PROF_TRANS_LOG WHERE (((ROUTE = 'ERP INBOUND') AND (((ORG_ID = 123) OR (ORG_ID = 234)) OR (ORG_ID = 5))) AND ((ATTRIBUTE9 <> 'Y') OR (ATTRIBUTE9 IS NULL))) FOR UPDATE SKIP LOCKED
    After Read SQL:
    UPDATE GETS_UX.GETS_UX_PROF_TRANS_LOG SET ATTRIBUTE9 = 'Y' WHERE (ORG_ID = #ORG_ID)
    My Question is. Do we have option to edit After Read SQL.
    I want to add condition in After Read SQL to update the records which i read in above select Query. Is it valid question or my understanding for this Config is wrong.
    I have configured Org id as unique key in DB config. seems that made Update Query to use ORG_ID as param.
    Thanks in advance
    Sujan

    I have configured Org id as unique key in DB configThat's probably the cause of your issue... You have to give here a field that DbAdapter can use to address one unique row in the table so it can mark it as processed...
    I want to add condition in After Read SQL to update the records which i read in above select QueryOnce you have the right configuration that shouldn't be needed... DbAdapter will update the lines one by one...
    Hope this helps...
    Cheers,
    Vlad

  • DB polling using custom SQL in SOA Suite 11g

    Hi,
    We are trying to poll records from a database using custom sql. But all the records in the table are being picked up at the same time and not as per the polling frequency set in the adapter.
    Below is the configuration from the .jca file:
    <endpoint-activation portType="II_ptt" operation="receive">
    <activation-spec className="oracle.tip.adapter.db.DBActivationSpec">
    <property name="DescriptorName" value="II.OrderRequest"/>
    <property name="QueryName" value="IISelect"/>
    <property name="MappingsMetaDataURL" value="II-or-mappings.xml"/>
    <property name="PollingStrategy" value="DeletePollingStrategy"/>
    <property name="PollingInterval" value="60"/>
    <property name="MaxRaiseSize" value="10"/>
    <property name="MaxTransactionSize" value="10"/>
    <property name="SequencingColumn" value="REQUEST_SAK"/>
    <property name="NumberOfThreads" value="1"/>
    <property name="ReturnSingleResultSet" value="false"/>
    <property name="DeleteDetailRows" value="false"/>
    </activation-spec>
    </endpoint-activation>
    Please let us know if anything else needs to be set to enable the polling as per the frequency in the adapter.
    Thanks.

    As the link from Anuj said, you need to also configure 'Distributed Polling' in the wizard. This speed limit trick will no longer work out of the box in 11.1.1.3 on, you will also have to set usesSkipLocking="false" in your DbAdapter connection pool definition. Skip locking eliminates the locking contention issue, so this primitive kind of load balancing is no longer needed in that case.
    Thanks
    Steve

  • Error  While Polling Database changes using Custom SQL

    Hi,
    I am using Oralce SOA Suite 11g DbAdapter for polling Database changes.
    My source database is DB2,I am using custom query for polling the changes in source database.
    I am using "Update an External Sequencing Table on a Different Database" polling Strategy
    Query section of the Mapping file is as follows.
    <querying xsi:type="query-policy">
    <queries>
    <query name="ReceiveF554102TXEDataSelect" xsi:type="read-all-query">
    <call xsi:type="sql-call">
    <sql><![CDATA[SELECT FILE_NAME, LIBRARY_NAME,
                   USER_NAME, SEQUENCE_NUM,
                   JOURNAL_CODE, ENTRY_TYPE, TIME_STAMP, JOB_NAME, JOB_USER,
                   JOB_NUMBER, PROGRAM_NAME, ARM_NUMBER, ADDRESS_FAMILY, RMT_ADDRESS,
                   REMOTE_PORT, SYSTEM_NAME, REL_RECORD, OTRCLN, IBMCU, IBITM, IBLITM,
                   IBAITM, IBY55ETAFR, IBY55ETATH, IBY55NUM01, IBY55NUM02, IBY55NUM03,
                   IBY55NUM04, IBY55NUM05, IBY55NUM06, IBY55NUM07, IBY55NUM08,
                   IBY55NUM09, IBY55NUM10, IBELM01, IBELM02, IBELM03, IBELM04, IBELM05, IBY55STR01,
                   IBY55STR02, IBY55STR03, IBY55STR04, IBY55STR05, IBY55CHA01,
                   IBY55CHA02, IBY55CHA03, IBY55CHA04, IBY55CHA05, IBY55DAT01, IBY55DAT02,
                   IBY55DAT03, IBY55DAT04, IBY55DAT05, IBUSER, IBPID, IBJOBN, IBUPMT,
                   IBUPMJ FROM PY_JRNMON.F554102T WHERE ((TIME_STAMP > (SELECT LAST_READ_DATE FROM SOALIB.SOASEQHDR WHERE (TABLE_NAME = 'F554102T'))) AND (TIME_STAMP < SYSDATE)) ORDER BY TIME_STAMP ASC]]> </sql>
    </call>
    <reference-class>ReceiveF554102TXEData.F554102T</reference-class>
    <lock-mode>none</lock-mode>
    <container xsi:type="list-container-policy">
    <collection-type>java.util.Vector</collection-type>
    </container>
    </query>
    </queries>
    <delete-query xsi:type="delete-object-query">
    <call xsi:type="sql-call">
    <sql>UPDATE SOALIB.SOASEQHDR SET LAST_READ_DATE = #LAST_READ_DATE WHERE (TABLE_NAME = 'F554102T')</sql>
    </call>
    </delete-query>
    </querying>
    I am getting following Error after defining the custom SQL in my mapping.xml file. (After executing the Created Process)
    Caused by: BINDING.JCA-11622
    Could not create/access the TopLink Session.
    This session is used to connect to the datastore.
    Caused by BINDING.JCA-11626
    Query Not Found Exception.
    Could not find Named Query [ReceiveSampleCustomPollSelect] with ? arguments, belonging to Descriptor [ReceiveSampleCustomPoll.F554102T] for [oracle.tip.adapter.db.DBActivationSpec@2ec733b0] inside of mappings xml file: [ReceiveSampleCustomPoll-or-mappings.xml].
    You may have changed the queryName info in either the _db.jca or toplink-mappings.xml files so that they no longer match.
    Make sure that the queryName in the activation/interactionSpec and in the Mappings.xml file match. If an old version of the descriptor has been loaded by the database adapter, you may need to bounce the app server. If the same descriptor is described in two separate Mappings.xml files, make sure both versions include this named query.
    You may need to configure the connection settings in the deployment descriptor (i.e. DbAdapter.rar#META-INF/weblogic-ra.xml) and restart the server. This exception is considered not retriable, likely due to a modelling mistake. 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:653)
         at oracle.tip.adapter.db.exceptions.DBResourceException.createEISException(DBResourceException.java:619)
         at oracle.tip.adapter.db.exceptions.DBResourceException.couldNotCreateTopLinkSessionException(DBResourceException.java:291)
         at oracle.tip.adapter.db.DBManagedConnectionFactory.acquireSession(DBManagedConnectionFactory.java:883)
         at oracle.tip.adapter.db.transaction.DBTransaction.getSession(DBTransaction.java:375)
         at oracle.tip.adapter.db.DBConnection.getSession(DBConnection.java:266)
         at oracle.tip.adapter.db.InboundWork.init(InboundWork.java:322)
         at oracle.tip.adapter.db.InboundWork.run(InboundWork.java:526)
         ... 4 more
    Caused by: BINDING.JCA-11626
    Query Not Found Exception.
    Could not find Named Query [ReceiveSampleCustomPollSelect] with ? arguments, belonging to Descriptor [ReceiveSampleCustomPoll.F554102T] for [oracle.tip.adapter.db.DBActivationSpec@2ec733b0] inside of mappings xml file: [ReceiveSampleCustomPoll-or-mappings.xml].
    You may have changed the queryName info in either the _db.jca or toplink-mappings.xml files so that they no longer match.
    Make sure that the queryName in the activation/interactionSpec and in the Mappings.xml file match. If an old version of the descriptor has been loaded by the database adapter, you may need to bounce the app server. If the same descriptor is described in two separate Mappings.xml files, make sure both versions include this named query.
         at oracle.tip.adapter.db.exceptions.DBResourceException.queryNotFoundException(DBResourceException.java:694)
         at oracle.tip.adapter.db.ox.TopLinkXMLProjectInitializer.initializeQuery(TopLinkXMLProjectInitializer.java:1238)
         at oracle.tip.adapter.db.DBManagedConnectionFactory.acquireSession(DBManagedConnectionFactory.java:728)
         ... 8 more
    Help required to fit custom SQL in mapping.xml file for complex queries.
    Thanks,
    Arun Jadhav.

    "Execuite Custom SQL" in DB adapter and you'l get it.
    But in this case you'll have to implement your own polling strategy (if you need one).
    If you want to use one of the predefined polling strategy you should use "Poll for New or Changed records" and import all the tables you use and connect them in wizard.

  • How to poll a PL/SQL procedure in BPEL?

    Hi,
    Normally in BPEL your start your process flows by receiving an event. You can only create a BPEL instance via a Receive or Pick activity. I have a couple of integrations where I have to continually call a PL/SQL procedure and then call another PL/SQL procedure with the output from the first procedure. This is done by invoking 2 partner links and a While activity. I got this working fine. The problem is how to create the instance. At the moment I start the flow by reading in a dummy file with a Receive event. This works for now but if the process has to be restarted it will not work since BPEL know that it has already read the file.
    I have tried to start the flow with a receive activity that calls a PL/SQL procedure but I get the error “Operation is not specified” (http://theheat.dk/bpelDb1.jpg). Normally you would use a Invoke activity when calling a PL/SQL procedure, but when I try that I get an error because I don’t have a receive activity first (http://theheat.dk/bpelDb2.jpg)
    So basically I need a way to have a receive activity call a PL/SQL procedure.
    I have the exact same problem when I need to continually call a Web Service and send the output to a PL/SQL procedure. Here I need an Invoke activity that calls the Web Service and an Invoke that calls the PL/SQL procedure but to get the flow initiated BPEL wants a receive activity.
    Regards Pete

    I found a simple solution that works but I would like to hear if anybody can see any problems with this approach:
    I create a dummy table with one row. I create a partner link that polls the dummy table every 5 minutes. The operation on the table is an update, but the Read value and Unread value are the same!
    Every 5 minutes BPEL kicks of a process that calls a PL/SQL procedure etc. There will always be a row in the dummy table and as long as my polling interval is longer than the processing time of the flow I will never have more than one process in-flight at a time. This should ensure that the solution is robust.
    Regards Pete
    Message was edited by:
    Peter Lorenzen
    Message was edited by:
    Peter Lorenzen

  • How to specify custom SQL in polling db adapter with logical delete option

    Hi all,
    I am writing a SOA composite app using JDeveloper SOA Suite 11.1.1.4 connecting to a SQL Server db using a polling DB Adapter with the logical delete option to send data to a BPEL process.
    I have requirements which go beyond what is supported in the JDeveloper UI for DB Adapter polling options, namely:
    * update more than one column to mark each row read, and
    * specify different SQL for the logical delete operation based on whether bpel processing of the data polled was successful or not.
    A complicating factor is that the polling involves two tables. Here is my full use-case:
    1) Polling will select data derived from two tables: e.g. 'headers' and 'details' simplified for this example:
    table: headers
    hid - primary key
    name - data label
    status - 'unprocessed', 'processed', or 'error'
    processedDate - null when data is loaded, set to current datetime when row is processed
    table: details
    hid - foreign key pointed at header.hid
    attr - data attribute name
    value - value of data attribute
    2) There is a many:1 relationship between detail and header rows through the hid columns. The db adapter polling SELECT shall return results from an outer join consisting of one header row and the associated detail rows where header.status = 'unprocessed' and header.hid = details.hid. (This is supported by the Jdeveloper UI)
    3) The polled data will be sent to be processed by a bpel process:
    3.1) If the bpel processing succeeds, the logical delete (UPDATE) operation shall set header.status = 'processed', and header.processedDate = 'getdate()'.
    3.2) If bpel processing fails (e.g. hits a data error while processing the selected data) the logical delete (UPDATE) operation shall set header.status = 'failed', header.processedDate = 'getdate()', and header.errorMsg = '{some text returned from bpel}'.
    Several parts of #3 are not supported by the JDeveloper UI: updating multiple columns to mark the row processed, using getdate() to populate a value of one of those column updates, doing different update operations based on the results of the BPEL processing of the data (success or error), and using data obtained from BPEL processing as a value of those column updates (error message).
    I have found examples which describe specifying custom SQL using the polling delete option to create a template then modifying the toplink file(s) to specify custom select and update SQL to implement a logical delete. (e.g. http://dlimiter.wordpress.com/2009/11/05/advanced-logic-in-oracle-bpel-polling-database-adapter/ and http://myexperienceswithsoa.blogspot.com/2010/06/db-adapter-polling-tricks.html). But none of them match what I've got in my project, in the first case because maybe because I'm using a higher version of JDeveloper, and in the second I think because in my case two tables are involved.
    Any suggestions would be appreciated. Thanks, John

    Hi John,
    You've raised a good scenario.
    First of all let me say that the purpose of the DB polling transaction, is to have an option to initiate a process from a DB table/view and not to update multiple fields in a table (or have other complex manipulation on the table).
    So, when choose to update a field in a record, after reading it, you are "telling" the engine not to poll this record again. Sure, i guess you can find a solution/workaround for it, but I don't think this is the way....
    The question now is what to do?
    You can have another DB adapter where you can update the data after finishing the process. In that case, after reading the data (on polling transaction) - update the header.status = 'processed' for example, and after processing the selected data update the rest of the fields.
    Hope it make some sense to you.
    Arik

  • Polling for new Data in Tables with SQL-functions

    Hi
    In my table I have 2 columns:
    event_state : integer (0 = unread, 1 = read)
    min_process_time : date
    In the DB-Adapter-Wizard I can configure my event_state-Field for using as logical delete field. In the SQL-Query there is a
    ... WHERE event_state=0
    But, I only want to query all new entries in this table, where
    min_process_time > SYSDATE.
    How can I configure my toplink-mapping, that SYSDATE can be used in the polling-query? If I use plain-sql instead of the expression from the Wizard (last page), then this sql-statement is ignored. In an expression I only can use a constant-value.
    Any idea?
    Thanks
    Gregor

    Hi
    I am creating a database Polling (logical delete OPEN to CLOSED) adapter that polls a table for records which have a "SCHEDULED" date field.
    The Polling Adapter should pick up those records where the status is OPEN and SCHEDULED<=SYSDATE.
    DB Adapter wizard does not allows this where clause(SCHEDULED<=SYSDATE) to be set; so i tried modifying the Toplink SQL with custom SQL. But it does not works. Please suggest a workaround.
    Please help.
    Thanks
    Debashis

  • Polling using WCF SQL Adapter

    Hi - I have to develop this in BizTalk
    There is a table in SQL database where BizTalk needs to poll the data using WCF SQL Adapter.
    How and what query/stored proc do I need to write ?
    and how about polling interval should I mention.
    Is there any detailed blog or link which clearly explains this, will be helpful
    MBH

    The first thing that you should remember is that the most effective way of getting data from SQL would be if you could remove the records after reading them. This was something that the native SQL Server adapter supported. For WCF-SQL, the way to achieve
    this is to
    Create a SP which is what you will specify as the execute statement for your adapter. This SP would, on the basis of TOP 1, get the ID, read the record and delete it. Then it would return the read data. You will generate schemas for this SP and deploy them
    for subscribing to the received messages.
    You will create a query that returns the count of records from the said table which you will use as the polling query. This will ensure that the adapter uses this on the configured interval to see if data exists. If it exists, it would use the execute statement
    (invoking your SP) to get the data.
    There is an option to keep executing the SP while data is available. This ensures that if more than ONE record is inserted into your table, all the records would be picked up after the first polling interval (as opposed to poll, pick-up one, poll and then
    pick up the other, etc.). Be careful while setting the polling interval (you cannot go beyond 1 sec) since this depends on your SQL servers ability to process the data.
    With regards to documentation, I'd refer you to
    http://msdn.microsoft.com/en-us/library/dd788532.aspx - Polling SQL Server by using the WCF-SQL Adapter.
    Regards.

  • Using Custom SQL in DBAdapter Polling

    Hi All,
    I am using DB Adapter Polling Service!
    The expression builder allows to use only nested AND or OR conditions. Can I write customized SQL queries for Polling?
    Thanks,
    CD

    As the link from Anuj said, you need to also configure 'Distributed Polling' in the wizard. This speed limit trick will no longer work out of the box in 11.1.1.3 on, you will also have to set usesSkipLocking="false" in your DbAdapter connection pool definition. Skip locking eliminates the locking contention issue, so this primitive kind of load balancing is no longer needed in that case.
    Thanks
    Steve

  • Polling records from mulitiple table(61 Tables) using WCF-SQL adapter

    Hi,
    I would like get some suggestion from this forum. I've a scenario, in which I need to poll the records from multiple table(61) which are related and may have one to many relationship. what's the best way to poll the records from SQL table to BizTalk.
    Thanks in advance..
    Regards,
    Karthick

    Karthick,
    Write a SQL stored procedure with joins from your 61 tables (!!!) . Use WCF-SQL adapter to invoke the procedures.
    Following references shall help you:
    Executing Stored Procedures in SQL Server by Using BizTalk Server
    Performing Composite Operations on SQL Server by Using BizTalk Server
    Bing-Results: biztalk wcf sql
    adapter polling stored procedure
    I don’t know your exact requirement. Consider using SQL-SSIS for ETL process depending on your requirements. Anyway if your requirement really needs BizTalk, above suggest
    should solve your problem.
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • DB adaptor polling, edited sql does not work correctly

    Please considet the following table
    BPELProcess State
    BPEL1 0
    BPEL2 0
    My DB adaptor is polling on this table to check for the state 0.after reading it changes it to 1. and invokes the bpel process 1 .Bpel1 invokes another process which changes the state back to 0 .
    DBAdaptor polling freq is 2 min
    DB adaptor SQL is
    SELECT BPELPROCESS, STATE FROM INVOKEDMADMPKG WHERE (((BPELPROCESS = BPEL1) AND (STATE = 0)) AND (ROWNUM <= 1)) ORDER BY BPELPROCESS ASC FOR UPDATE NOWAIT
    but i used to see 2 instances every 2 minutes,i should see 1.
    when i deleted the 2nd row from the database table then it started working fine FOR SOME TIME and thenm the issue returned.
    I see twp bpel instances every 2 min
    Why cannot i pol on condition where BPEL PRocess =BPEL1 and State =0
    Is there a way to accomplish this
    Edited by: 850101 on Nov 14, 2012 2:10 PM

    850101 wrote:
    DB adaptor ... check for the state 0 ... changes it to 1 ... changes the state back to 0 ...BPEL will allways work in a transaction... So the change to 1 in the middle of the transaction doesn't make much sense, it will never be visible by other threads...
    I'm not sure what you're trying to achieve with that construction but I would say DbAdapter/Bpel wasn't designed to work like that... The results will be unpredictable, as you noticed yourself on your tests...
    If you need a BPEL to be invoked every two minutes you may have a look at using a scheduler...
    http://www.oracle.com/technetwork/middleware/soasuite/learnmore/soascheduler-186798.pdf
    Cheers,
    Vlad

  • Single detail Record repeated with xml for in wcf sql for xml polling.

    Hi,
    I am getting a weird results for a inner join of header detail with for xml auto, element.
    If I run the query in sql it gives me master detail results as expected. i.e
    <HEADER>
    <ID>1</ID>
           <DETAIL><ID>1</ID></DETAIL>
         <DETAIL><ID>2</ID></DETAIL>
    </HEADER>
    In BizTalk I configured the receive location and added a root node and the namespace to the binding properties.
    I get results as.
    <HEADER>
    <ID>1</ID>
           <DETAIL><ID>1</ID></DETAIL>
    </HEADER>
    <HEADER>
    <ID>1</ID>
           <DETAIL><ID>2</ID></DETAIL>
    </HEADER>
    Please Advice.
    Thank you and have great day! Vivek Kulkarni MCAD.net

    Hi Vivek,
    Took a while to simulate your issue. The usage of "FOR XML AUTO, ELEMENTS" is generally used in the old SQL-adapter. To get this working in the WCF-SQL adapter, you need to have some properties set which is not explored well.
    The issue is due to the way you have defined the SQL query and the "InboundOperationType" property of the WCF-SQL adapter. Here is the steps I have done to get the result as you wanted in WCF-SQL adapter, the same output as "FOR XML AUTO,
    ELEMENTS " in SQL.
    In the binding of the WCF-SQL adapter, select the  "InboundOperationType" property to "XMLPolling". The default is "Polling". 
    In the "Polling Statement", ensure the SQL statement which will give results the XML-output as you wanted. So if you have used following statement in SQL management studio, then use the same statement in the "Polling Statement" property
    of the Receive location. Ensure you DON'T remove the "For XML AUTO" statement while configuring the SQL query in receive location. As here you have choose "XMLPolling" as the value for  "InboundOperationType"
    property, the output of the SQL statement should be XML. 
    SELECT Header.ID
    ,Detail.ID
    FROM Header
    JOIN Detail ON Detail.OrderHeaderID = Header.ID
    FOR XML AUTO, ELEMENTS
    Note: You can either use SQL select statement or stored procedure. Even if any of these method used to get the resultset from SQL db, ensure it return the output in XML.
    Above query is what I have used to simulate your case, you can change it to suit your actual SQL table and column names.
    In the "PolledDataAvailableStatement" property I have used the following which would ensure that "Polling Statement" statement executes. I assume you're using this to learn how WCF-SQL adapter works, in real time you may need to update
    the query in SQL so that SQL doesn't return the resultset continuously
    SELECT top 1 Header.OrderID
    ,Detail.DetailID
    FROM Header
    JOIN Detail ON Detail.OrderHeaderID = Header.OrderID
    Try the setting, the structure of the output using the above using "XMLPolling" values in "InboundOperationType" property of the receive location binding will be same as the "FOR XML AUTO, ELEMENTS" in SQL. You may need to change
    the rootname property to suit your actual expected output.
    Regards,
    M.R.Ashwin Prabhu
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • SQL being generated improperly - JDBC bc - poll operation

    I have a bpel process that is kicked off by a JDBC binding component's "poll" operation. I have the PollingPostProcessing value set to MarkColumn. I've set the MarkColumnName and MarkColumnValue parameters (see below). The column I'm marking is defined as:
    TINYINT(4), not null, with a default value of 0.
    I'm using MySQL v5
    My issue is that the SQL generated by JBI is incorrect, it's missing spaces: select * from .mbmessage where monitored != *1ormonitoredis* NULL
    The Error:
    Received in-only message.
    Executing sql . select * from .mbmessage
    Unexpected exception Occured while processing the MEP.
    javax.jbi.messaging.MessagingException: Error occured while executing sql.select * from .mbmessage where monitored != 1ormonitoredis NULL
            at com.sun.jbi.jdbcbc.InboundMessageProcessor.executeInboundSQLSelect(InboundMessageProcessor.java:484)
            at com.sun.jbi.jdbcbc.InboundMessageProcessor.processInOnly(InboundMessageProcessor.java:388)
            at com.sun.jbi.jdbcbc.InboundMessageProcessor.execute(InboundMessageProcessor.java:308)
            at com.sun.jbi.jdbcbc.InboundMessageProcessor.run(InboundMessageProcessor.java:231)
            at java.lang.Thread.run(Thread.java:619)
    Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL' at line 1
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
            at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
            at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
            at com.mysql.jdbc.Connection.execSQL(Connection.java:3256)
            at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1313)
            at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1448)
            at com.sun.jbi.jdbcbc.InboundMessageProcessor.executeInboundSQLSelect(InboundMessageProcessor.java:480)
            ... 4 moreHere is a snippet from my JDBC binding component.
    <jdbc:input xmlns:jdbc="http://schemas.sun.com/jbi/wsdl-extensions/jdbc/" MarkColumnName="monitored" MarkColumnValue="1" MoveRowToTableName="" PKName="messageId" PollMilliSeconds="5000" PollingPostProcessing="MarkColumn" TableName=".mbmessage" Transaction="NOTransaction" numberOfRecords="" operationType="poll" paramOrder="" sql="...."/>Has anyone else come across this situation? I'm hoping that it's something easy I'm overlooking.
    Thanks in advance,
    -sellerjd

    Does anyone have the JDBC binding component's "poll" operation working correctly, using the "MarkColumn" option for the PollingPostProcess attribute? If so, could you share your experiences in setting it up? Does the "marked column" in the database need to be a specific type or have certain rules?
    Any info would be very much appreciated.

  • WCF-Sql Addapter polling issue

    Hi All,
    I am getting the following error when receive location is started.
    System.Data.SqlClient.SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. --->
    System.ComponentModel.Win32Exception (0x80004005): The wait operation timed out at System.Data.SqlClient.SqlConnection.OnError(SqlException exception
    I have set the open,close, receive time out to 10, But still I can see this issue.
    Please let me know your suggestions.
    Thanks in Advance. 

    As the error says, SQL is not responding within the configured time or your query takes longer time to complete.
    You can do the following:
    Increase the timeout and see whether longer time to execute the query and waiting for the response helps.
    Get the actual query being constructed/executed against SQL Server and try to execute this query in Query Analyser to see what happens.
    Try to disable MSDTC in
    Send Port by setting UseAmbientConnection to "false" and use "transaction
    = false".  See this helps.
    Check any locking related issue is blocking your query.
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful.

Maybe you are looking for

  • Create PMD (Clinical Document) Document from Webdynpro ABAP

    Greetings everyone,        I have developed two PMD document category(Tcode :N2T6 ) for Clinical documents in SAP R/3 and somehow with the limitation of R/3 in terms of developing user friendly screens like Auto fill and image processing etc...,Users

  • Is there a way to center the text on a message popup

    Looking for a way to center multiple lines of text on a Message Popup.

  • Library transfer

    I have been using iphoto for a while now and have downloaded the trial aperture version. I imported my entire iphoto library into the aperture library, and now I'd like to delete my iphoto library to free up space. However I've noticed that when I go

  • How well does Siri work?

    I am currently looking into getting an iphone 4S and was wondering how well Siri works. I've read that the voice recognition isn't perfect, which I would assume, but my main question is how functional Siri is. How useful is it to have Siri? Thanks in

  • SNP process messages and Advanced Q

    Folks, I'm trying to help a project that doesn't have any DBA support and I'm coming in cold to advanced queuing. I'm getting this message in the alert log. Restarting dead background process SNPN SNPN started with pid=15 Can somone direct me where t