Password indirection for database adapter

Does the database adapter support the use of thge password indirection feature? I refer to the topic Creating an Indirect Password in the OC4J J2EE Security Guide, see http://download-east.oracle.com/docs/cd/B14099_15/web.1012/b14013/passman.htm#sthref746,
oc4j-ra.xml is not listed.

you will notice a JNDI name for this e.g. eis/DB/... this is used to look at the Application Server configuration. If it doesn't exist then it will use the credentials used as design time. Not good asthe connection will be fore development mainly.
you can safely remove the mcf setting from the wsdl so it will always force the AS connection. this is good practice.
To configure the AS configuration there is the oc4j-ra.xml file for the DB adapter. Or you can configure in Enterprise Manager
EM -> oc4j_soa (home if basic install) -> Administration -> JDBC Resources
configure a connection pool and data source
then create a JNDI name entry for the DB adapter
EM -> oc4j_soa (home if basic install) -> Applications -> Drop Down box select Adapter Resources -> DB Adapter
Use the examples. You will see that the connect string = jdbc/DBName
cheers
James

Similar Messages

  • Where is user name and password stored for database adapter

    dear all,
    does any body know where is the password stored in database adapters.
    I noticed it mentioned in wsdl file in encrypted format, but is there any other place it stored.
    a ) before deployment
    b) aftre deployment .
    Thanks in advance .
    Regards
    Arc

    you will notice a JNDI name for this e.g. eis/DB/... this is used to look at the Application Server configuration. If it doesn't exist then it will use the credentials used as design time. Not good asthe connection will be fore development mainly.
    you can safely remove the mcf setting from the wsdl so it will always force the AS connection. this is good practice.
    To configure the AS configuration there is the oc4j-ra.xml file for the DB adapter. Or you can configure in Enterprise Manager
    EM -> oc4j_soa (home if basic install) -> Administration -> JDBC Resources
    configure a connection pool and data source
    then create a JNDI name entry for the DB adapter
    EM -> oc4j_soa (home if basic install) -> Applications -> Drop Down box select Adapter Resources -> DB Adapter
    Use the examples. You will see that the connect string = jdbc/DBName
    cheers
    James

  • What kind of database driver should use for database adapter  in BPEL?

    what kind of database driver (XA or non-XA) should use for database adapter in BPEL? I have only one database adapter and no JMS.
    Thanks
    Jo
    Edited by: 799095 on Sep 30, 2010 8:35 AM

    Hi
    It depends on wheter you need XA transaction or not.
    See http://www.theserverside.com/discussions/thread.tss?thread_id=21385 third reply.
    If you only have one database and no synchronous dependency to the caller, non-XA should be OK.
    -Johan

  • Dynamic JNDI name for database adapter in BPEL

    Hi All,
    I am having some major issues trying to make the JNDI location for the database adapter dynamic (10.1.3.4). I already went through the followin link, but that didnt work for me: http://www.oracle.com/technology/pub/articles/bpel_cookbook/carey.html
    The below example works, but only the first run. Second time around the first runs JNDI value gets retained and connects to that database.
    This is what worked atleast the first time.
    I parameterized the JNDI with a variable defined in the partnerlink definition in the bpel.xml
    In Bpel. xml
    <partnerLinkBinding name="updatetbl">
    <property name="wsdlLocation">updatetbl.wsdl</property>
    <property name="CONN">eis/DB/na</property>
    <property name="retryInterval">60</property>
    </partnerLinkBinding>
    In the updatetbl.wsdl file
    <service name="updatetbl">
    <port name="updatetbl_pt" binding="tns:updatetbl_binding">
    <jca:address location="$CONN"/>
    </port>
    </service>
    At run time I change the partnerlink CONN variable in embedded Java.
    try
    Element targetAdapterElement =(Element)getVariableData("Invoke_getFromTbl_OutputVariable","getFromTblOutputCollection","/ns2:getFromTblOutputCollection/ns2:getFromTblOutput/ns2:SRC_JNDI");
    getLocator().lookupProcess("JndiIssueTest").getDescriptor().getPartnerLinkBindings().getPartnerLinkBinding ("updatetbl").setPropertyValue ("CONN",targetAdapterElement.getTextContent());
    ("updatetbl").getPropertyValue ("CONN"));
    catch(Exception ex)
    addAuditTrailEntry("Error is " + ex);
    This works fine the first time, but the second time I run it to look at a different CONN value, it somehow still connects using the first runs value!
    If I redeploy or clear the WSDL cache, it works. But we plan to run it multiple times from several environment so manually or programatically clearing WSDL is not the right solution.
    Can someone tell me what is the standard process of doing this so it works everytime?
    Thanks,
    Shaf

    Shaf,
    Please refer the mail thread for details. If you want I can send you(send me your email id) the sample BPEL process which uses Dynamic JNDI.
    Re: How to externalize JNDI name (setting JNDI name dynamically)
    Thanks,
    Sen

  • Can I use polling frequency for Database Adapter

    I need to use Database Adapter that acts like FileAdapter. Can I set polling frequency for my Database Adapter, so that the adapter can query every 5 secs?

    You can use polling feature when you configure your DB adapter Operation Type as "Poll for New or Changed Records in Table"
    If you use Adapter configuration wizard it will promot for "Pollling Options" and Polling Frequency is the option which you can configure in seconds, mins or hrs

  • Re-using toplink code for database adapter

    Hi,
    I have a project in which multiple BPEL processes will be implemented. Some of them use database adapters to connect to various staging areas.
    Is it possible to setup JDeveloper in such a way that I can create the toplink side for the database adapter in a separate project, and include it in the other BPel projects? It seems a waste of resources to recreate the whole toplink business each time I create a database adapter in a project to again the same schema.
    Jeroen van Veldhuizen

    Because:
    1) it is not possible to deploy the same instance multiple times to run in parallel, connecting to different databases simultaneously to start up processes
    2) an adapter that polls and a second adapter that writes to the same schema, are using the same datamodel and message model.
    Why recreate the whole model over and over again?
    Jeroen

  • How to set polling interval for database adapter in interconnect?help plz!!

    Hi
    i have 4 database adapters with same name subscribing to same event in 4 different interconnect instances(i.e., same business event and application event in different hubs) and pointing to same source application database , same destination application database.
    source application database have one oai bridge schema.When a message has to be sent,message will be enqueued in messageobjecttable.This message can be taken by 4 databse adapters.and send to 4hubs then 4 messages will be sent to destination application instead of single message.
    To avoid this,I want to set database polling interval in 4 adapters sych a way that if one adapter take message in MESSAGEOBJECT TABLE,the other three adapters don't pick same message.
    this way i can avoid redundacy at destination application.Please reply soon
    Thanks

    You would seem to have an extremely unusual use case for interconnect. The whole purpose of Interconnect is to concentrate the message processing into one hub and distribute the message to those applications interested in it. The use of 4 hubs from one application is probably not supported for precisely the reasons you are having trouble. Can you give us more details of your use case?
    I am not sure that adjusting the polling interval for the different adapters will help. Since at some point you will get a collision where 2 or more adapters poll at the same time.

  • It there a way to enable debugging to view SQL details for database adapter

    The adapter guide seems to allude to the possibility with the following statement:
    "To monitor performance, you can enable debug logging and then watch the SQL for various inputs."
    There is no information, however, to indicate how to enable this feature. It would be nice to be able to view details in domain.log.
    Thanks,
    RM

    The switch to tab feature is only available when you are typing in the Location (a.k.a. Awesome) bar. Clicking on a bookmark will always open the bookmarked page in either the current tab or a new tab.

  • Multiple stored procedure in Database Adapter

    Can I manually create the wsdl for database adapter, which can have multiple operations for different stored procedures?
    I tried creating a wsdl as -
    <definitions
    name="CustomAdapter"
    targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/CustomAdapter/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/db/CustomAdapter/"
    xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/xsd/"
    xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
    xmlns:hdr="http://xmlns.oracle.com/pcbpel/adapter/db/"
    >
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/" location="DBAdapterOutboundHeader.wsdl"/>
    <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/xsd/"
    schemaLocation="myadapter.xsd" />
    </schema>
    </types>
    <message name="args_in_msg_tscp1">
    <part name="InputParameters" element="db:InputParametersTSCP1"/>
    </message>
    <message name="args_in_msg_sample">
    <part name="InputParameters" element="db:InputParametersSAMPLE"/>
    </message>
    <message name="args_out_msg_sample">
    <part name="OutputParameters" element="db:OutputParametersSAMPLE"/>
    </message>
    <portType name="Proc1_ptt">
    <operation name="Proc1">
    <input message="tns:args_in_msg_tscp1"/>
    </operation>
    <operation name="Proc2">
    <input message="tns:args_in_msg_sample"/>
    <output message="tns:args_out_msg_sample"/>
    </operation>
    </portType>
    <binding name="Proc1_binding" type="tns:Proc1_ptt">
    <jca:binding />
    <operation name="Proc1">
    <jca:operation
    InteractionSpec="oracle.tip.adapter.db.DBStoredProcedureInteractionSpec"
    SchemaName="SYSTEM"
    ProcedureName="TSCP1"
    >
    </jca:operation>
    <input>
    <jca:header message="hdr:OutboundHeader_msg" part="outboundHeader"/>
    </input>
    </operation>
    <operation name="Proc2">
    <jca:operation
    InteractionSpec="oracle.tip.adapter.db.DBStoredProcedureInteractionSpec"
    SchemaName="SYSTEM"
    ProcedureName="MYSAMPLEPROC"
    >
    </jca:operation>
    <input>
    <jca:header message="hdr:OutboundHeader_msg" part="outboundHeader"/>
    </input>
    <output/>
    </operation>
    </binding>
    <service name="Proc1">
    <port name="Proc1_pt" binding="tns:Proc1_binding">
    <!--Your runtime connection is declared in
    J2EE_HOME/application-deployments/default/DbAdapter/oc4j-ra.xml
    These mcf properties here are from your design time connection and
    save you from having to edit that file and restart the application server
    if eis/DB/System25 is missing.
    These mcf properties are safe to remove.-->
    <jca:address location="eis/DB/DBConn25" UIConnectionName="System25"
    />
    </port>
    </service>
    <plt:partnerLinkType name="Proc1_plt" >
    <plt:role name="Proc1_role" >
    <plt:portType name="tns:Proc1_ptt" />
    </plt:role>
    </plt:partnerLinkType>
    </definitions>
    Then I copied this wsdl and corresponding xsd to my BPEL process and created a partnerlink for this wsdl.
    I added two invoke activities, one for Proc1 operation and other for Proc2 operation.
    When I tried testing this BPEL process, the BPEL process manager was invoking only Proc1 operation for both invoke activities and giving me error as-
    <Faulthttp://schemas.oracle.com/bpel/extensionhttp://schemas.xmlsoap.org/soap/envelope/>
    <faultcode>null:bindingFault</faultcode>
    <faultstring>business exception</faultstring>
    <faultactor>cx-fault-actor</faultactor>
    <detail>
    <code>1400</code>
    <summary>file:/D:/Morrisons/OracleProducts/product/Oracle_SOA/bpel/domains/TestPOC/tmp/.bpel_MyAdapterTest_1.0_c564165702d743346cadb68bc5bbb594.tmp/CustomAdapter.wsdl [ Proc1_ptt::Proc1(InputParameters) ] - WSIF JCA Execute of operation 'Proc2' failed due to: Error while trying to prepare and execute an API. An error occurred while preparing and executing the SYSTEM.TSCP1 API. Cause: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 [Caused by: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 ] ; nested exception is: ORABPEL-11811 Error while trying to prepare and execute an API. An error occurred while preparing and executing the SYSTEM.TSCP1 API. Cause: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 [Caused by: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 ] Check to ensure that the API is defined in the database and that the parameters match the signature of the API. Contact oracle support if error is not fixable. </summary>
    <detail> Internal Exception: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 Error Code: 1400</detail>
    </detail>
    </Fault>
    I want to create only one wsdl for all the strored procedures.

    Can I manually create the wsdl for database adapter, which can have multiple operations for different stored procedures?
    I tried creating a wsdl as -
    <definitions
    name="CustomAdapter"
    targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/CustomAdapter/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/db/CustomAdapter/"
    xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/xsd/"
    xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
    xmlns:hdr="http://xmlns.oracle.com/pcbpel/adapter/db/"
    >
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/" location="DBAdapterOutboundHeader.wsdl"/>
    <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/xsd/"
    schemaLocation="myadapter.xsd" />
    </schema>
    </types>
    <message name="args_in_msg_tscp1">
    <part name="InputParameters" element="db:InputParametersTSCP1"/>
    </message>
    <message name="args_in_msg_sample">
    <part name="InputParameters" element="db:InputParametersSAMPLE"/>
    </message>
    <message name="args_out_msg_sample">
    <part name="OutputParameters" element="db:OutputParametersSAMPLE"/>
    </message>
    <portType name="Proc1_ptt">
    <operation name="Proc1">
    <input message="tns:args_in_msg_tscp1"/>
    </operation>
    <operation name="Proc2">
    <input message="tns:args_in_msg_sample"/>
    <output message="tns:args_out_msg_sample"/>
    </operation>
    </portType>
    <binding name="Proc1_binding" type="tns:Proc1_ptt">
    <jca:binding />
    <operation name="Proc1">
    <jca:operation
    InteractionSpec="oracle.tip.adapter.db.DBStoredProcedureInteractionSpec"
    SchemaName="SYSTEM"
    ProcedureName="TSCP1"
    >
    </jca:operation>
    <input>
    <jca:header message="hdr:OutboundHeader_msg" part="outboundHeader"/>
    </input>
    </operation>
    <operation name="Proc2">
    <jca:operation
    InteractionSpec="oracle.tip.adapter.db.DBStoredProcedureInteractionSpec"
    SchemaName="SYSTEM"
    ProcedureName="MYSAMPLEPROC"
    >
    </jca:operation>
    <input>
    <jca:header message="hdr:OutboundHeader_msg" part="outboundHeader"/>
    </input>
    <output/>
    </operation>
    </binding>
    <service name="Proc1">
    <port name="Proc1_pt" binding="tns:Proc1_binding">
    <!--Your runtime connection is declared in
    J2EE_HOME/application-deployments/default/DbAdapter/oc4j-ra.xml
    These mcf properties here are from your design time connection and
    save you from having to edit that file and restart the application server
    if eis/DB/System25 is missing.
    These mcf properties are safe to remove.-->
    <jca:address location="eis/DB/DBConn25" UIConnectionName="System25"
    />
    </port>
    </service>
    <plt:partnerLinkType name="Proc1_plt" >
    <plt:role name="Proc1_role" >
    <plt:portType name="tns:Proc1_ptt" />
    </plt:role>
    </plt:partnerLinkType>
    </definitions>
    Then I copied this wsdl and corresponding xsd to my BPEL process and created a partnerlink for this wsdl.
    I added two invoke activities, one for Proc1 operation and other for Proc2 operation.
    When I tried testing this BPEL process, the BPEL process manager was invoking only Proc1 operation for both invoke activities and giving me error as-
    <Faulthttp://schemas.oracle.com/bpel/extensionhttp://schemas.xmlsoap.org/soap/envelope/>
    <faultcode>null:bindingFault</faultcode>
    <faultstring>business exception</faultstring>
    <faultactor>cx-fault-actor</faultactor>
    <detail>
    <code>1400</code>
    <summary>file:/D:/Morrisons/OracleProducts/product/Oracle_SOA/bpel/domains/TestPOC/tmp/.bpel_MyAdapterTest_1.0_c564165702d743346cadb68bc5bbb594.tmp/CustomAdapter.wsdl [ Proc1_ptt::Proc1(InputParameters) ] - WSIF JCA Execute of operation 'Proc2' failed due to: Error while trying to prepare and execute an API. An error occurred while preparing and executing the SYSTEM.TSCP1 API. Cause: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 [Caused by: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 ] ; nested exception is: ORABPEL-11811 Error while trying to prepare and execute an API. An error occurred while preparing and executing the SYSTEM.TSCP1 API. Cause: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 [Caused by: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 ] Check to ensure that the API is defined in the database and that the parameters match the signature of the API. Contact oracle support if error is not fixable. </summary>
    <detail> Internal Exception: java.sql.SQLException: ORA-01400: cannot insert NULL into ("SYSTEM"."EMPS"."EMPID") ORA-06512: at "SYSTEM.TSCP1", line 4 ORA-06512: at line 1 Error Code: 1400</detail>
    </detail>
    </Fault>
    I want to create only one wsdl for all the strored procedures.

  • Database Adapter Wizard does not show accessible table

    HI guys,
    in the wizard I am unable to see the tables which I need to use for database adapter.
    But I do have access to those tables, and able to select from them in SQL worksheet from with in Jdev.
    I dont own the tables, but my user id have readable access to those tables.
    Any help is appreciated.
    P.S. If I didnt explain it properly, plz let me know. It really creates lot of access issues if I can only create DB adapter on My owned tables.
    :)

    Hi there,
    please see the answer to your duplicate post on the BPEL forum:
    DB Adapter does not show selectable tables
    In general BPEL forum gets a lot more traffic but I will try to address questions on both equally.
    Thanks
    Steve

  • Password indirection using password-manager

    Hi
    I'm trying to set up password indirection for my connection to our data source.
    The documentation states that you should add the <password-manager> element in the system-application.xml file.
    However, the xsd doesn't allow this! It has the password-manager element defined, but not referenced from within the orion-application element.
    Am I missing a trick here? Where is it meant to go?!?
    Thanks
    Paul

    Paul -- that wasn't required the last time I used our PW indirection.
    http://download-west.oracle.com/docs/cd/B14099_19/web.1012/b14012/datasrc.htm#sthref533
    The 10.1.3 doc looks quite similar:
    http://download-west.oracle.com/docs/cd/B31017_01/web.1013/b28958/datasrc.htm#CHDJGJFE
    As far as I recall, all you needed to do was to ensure the same username was entered as an OC4J JAAS username in the user manager that the application was using. And then in the data-source (or CP nowadays) definition, specify "->username" as the password field. The container would follow the link and work out what the password was.
    Can you post the doc link you are reading this in here so I can have a look at what's written? It may be talking about the general jazn-user-manager applied to the application. Which you don't need to muck with to make this work in most cases.
    cheers
    -steve-

  • OC4J data-source password indirection LDAP

    Hi all,
    I'm trying to set up password indirection for my OC4J data-sources. If I choose my user manager as JAZN XML UserManager then it works fine using encrypted passwords from the jazn-data.xml file. However using LDAP I cannot get it to work. I get an exception (pasted below) when the container starts up. Does anyone have experience with this?
    Regards.
    Anton.
    Exception:
    06/01/05 14:26:38 java.lang.UnsupportedOperationException
    06/01/05 14:26:38 at oracle.security.jazn.oc4j.RealmUserAdaptor.getPassword(Unknown Source)
    06/01/05 14:26:38 at oracle.security.jazn.oc4j.FilterUser.getPassword(Unknown Source)
    06/01/05 14:26:38 at com.evermind.security.SecuritySensitive.lookup(SecuritySensitive.java:217)
    06/01/05 14:26:38 at com.evermind.security.SecuritySensitive.decode(SecuritySensitive.java:114)
    06/01/05 14:26:38 at com.evermind.security.SecuritySensitive.decode(SecuritySensitive.java:131)
    06/01/05 14:26:38 at com.evermind.server.DataSourceConfig.getPassword(DataSourceConfig.java:530)
    06/01/05 14:26:38 at com.evermind.server.Application.initDataSource(Application.java:1674)
    06/01/05 14:26:38 at com.evermind.server.Application.initDataSources(Application.java:2077)
    06/01/05 14:26:38 at com.evermind.server.Application.preInit(Application.java:517)
    06/01/05 14:26:38 at com.evermind.server.Application.setConfig(Application.java:166)
    06/01/05 14:26:38 at com.evermind.server.Application.setConfig(Application.java:145)
    06/01/05 14:26:38 at com.evermind.server.ApplicationServer.initializeApplications(ApplicationServer.java:1756)

    Hi Toby,
    Passsword indirection with jazn-ldap is not supported please review this link
    Cheers,
    Deepak

  • Use of current time for polling Database Adapter query

    I am writing a simple BPEL process with a Polling Database Adapter and a Recieve. The idea is that we are polling an XE database for any entries in a TRIP table which have an expiration date/time field that has passed.
    The Adapter was build using JDeveloper 10.1.3.2 (with Oracle Application Server patched to 10.1.3.3.0) as a "Poll for New Changed Records in a Table" Operation type with a STATUS field (0 for live, 1 for expired) as the Logical Delete Field.
    I was unable to find a way to generate a SELECT query expression with the wizard that would allow me to use current/system time as an attribute, so I finished the wizard and edited the Toplink Descriptor to use a custom SQL expression for the query. This resulted in the following code in the toplink_mappings.xml file:
    <?xml version="1.0" encoding="UTF-8"?>
    <toplink:object-persistence version="Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)"
    xmlns:opm="http://xmlns.oracle.com/ias/xsds/opm" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:toplink="http://xmlns.oracle.com/ias/xsds/toplink"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <opm:name>ExpiredTripPoller</opm:name>
    <opm:class-mapping-descriptors>
    <opm:class-mapping-descriptor xsi:type="toplink:relational-class-mapping-descriptor">
    <opm:class>ExpiredTripPoller.Trip</opm:class>
    <opm:alias>Trip</opm:alias>
    <opm:primary-key>
    <opm:field table="TRIP" name="ID" xsi:type="opm:column"/>
    </opm:primary-key>
    <opm:events xsi:type="toplink:event-policy"/>
    <opm:querying xsi:type="toplink:query-policy">
    <opm:queries>
    <opm:query name="ExpiredTripPoller" xsi:type="toplink:read-all-query">
    <toplink:timeout>0</toplink:timeout>
    <toplink:call xsi:type="toplink:sql-call">
    <toplink:sql>SELECT ID, LPN, START_TIME, EXPIRY_TIME, STATUS FROM TRIP WHERE ((STATUS = '0') AND (EXPIRY_TIME < SYSDATE)) ORDER BY EXPIRY_TIME ASC</toplink:sql>
    </toplink:call>
    <toplink:reference-class>ExpiredTripPoller.Trip</toplink:reference-class>
    <toplink:cache-usage>primary-key</toplink:cache-usage>
    <toplink:lock-mode>none</toplink:lock-mode>
    <toplink:container xsi:type="toplink:list-container-policy">
    <toplink:collection-type>java.util.Vector</toplink:collection-type>
    </toplink:container>
    </opm:query>
    <opm:query name="findAllTrip" xsi:type="toplink:read-all-query">
    <toplink:timeout>0</toplink:timeout>
    <toplink:reference-class>ExpiredTripPoller.Trip</toplink:reference-class>
    <toplink:cache-usage>primary-key</toplink:cache-usage>
    <toplink:lock-mode>none</toplink:lock-mode>
    <toplink:container xsi:type="toplink:list-container-policy">
    <toplink:collection-type>java.util.Vector</toplink:collection-type>
    </toplink:container>
    </opm:query>
    </opm:queries>
    <toplink:does-exist-query xsi:type="toplink:does-exist-query">
    <toplink:existence-check>check-database</toplink:existence-check>
    </toplink:does-exist-query>
    <toplink:read-all-query xsi:type="toplink:read-all-query">
    <toplink:reference-class>ExpiredTripPoller.Trip</toplink:reference-class>
    <toplink:container xsi:type="toplink:list-container-policy">
    <toplink:collection-type>java.util.Vector</toplink:collection-type>
    </toplink:container>
    </toplink:read-all-query>
    </opm:querying>
    <opm:attribute-mappings>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>id</opm:attribute-name>
    <opm:field table="TRIP" name="ID" xsi:type="opm:column"/>
    <opm:attribute-classification>java.math.BigDecimal</opm:attribute-classification>
    </opm:attribute-mapping>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>lpn</opm:attribute-name>
    <opm:field table="TRIP" name="LPN" xsi:type="opm:column"/>
    <opm:attribute-classification>java.lang.String</opm:attribute-classification>
    </opm:attribute-mapping>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>startTime</opm:attribute-name>
    <opm:field table="TRIP" name="START_TIME" xsi:type="opm:column"/>
    <opm:attribute-classification>java.sql.Timestamp</opm:attribute-classification>
    </opm:attribute-mapping>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>expiryTime</opm:attribute-name>
    <opm:field table="TRIP" name="EXPIRY_TIME" xsi:type="opm:column"/>
    <opm:attribute-classification>java.sql.Timestamp</opm:attribute-classification>
    </opm:attribute-mapping>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>status</opm:attribute-name>
    <opm:field table="TRIP" name="STATUS" xsi:type="opm:column"/>
    <opm:attribute-classification>java.math.BigDecimal</opm:attribute-classification>
    </opm:attribute-mapping>
    </opm:attribute-mappings>
    <toplink:descriptor-type>independent</toplink:descriptor-type>
    <toplink:caching>
    <toplink:cache-type>weak-reference</toplink:cache-type>
    <toplink:always-refresh>true</toplink:always-refresh>
    </toplink:caching>
    <toplink:remote-caching>
    <toplink:cache-type>weak-reference</toplink:cache-type>
    </toplink:remote-caching>
    <toplink:instantiation/>
    <toplink:copying xsi:type="toplink:instantiation-copy-policy"/>
    <toplink:change-policy xsi:type="toplink:deferred-detection-change-policy"/>
    <toplink:tables>
    <toplink:table name="TRIP"/>
    </toplink:tables>
    </opm:class-mapping-descriptor>
    </opm:class-mapping-descriptors>
    </toplink:object-persistence>
    To test I used the above custom SQL at the command line and it filtered the records by EXPIRY_TIME as expected.
    When deployed, the polling process updates the STATUS file dof table entries, but all entries with status 0 regardless of EXPIRY_DATE. My modification appears to be being ignored. I was unsure as to whether the QUERY was being determined in some other way so I modified the descriptor (with the toplink expression editor) to compare against a literal time value, producing the following modified toplink_mappings.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <toplink:object-persistence version="Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)"
    xmlns:opm="http://xmlns.oracle.com/ias/xsds/opm" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:toplink="http://xmlns.oracle.com/ias/xsds/toplink"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <opm:name>ExpiredTripPoller</opm:name>
    <opm:class-mapping-descriptors>
    <opm:class-mapping-descriptor xsi:type="toplink:relational-class-mapping-descriptor">
    <opm:class>ExpiredTripPoller.Trip</opm:class>
    <opm:alias>Trip</opm:alias>
    <opm:primary-key>
    <opm:field table="TRIP" name="ID" xsi:type="opm:column"/>
    </opm:primary-key>
    <opm:events xsi:type="toplink:event-policy"/>
    <opm:querying xsi:type="toplink:query-policy">
    <opm:queries>
    <opm:query name="ExpiredTripPoller" xsi:type="toplink:read-all-query">
    <opm:criteria operator="lessThan" xsi:type="toplink:relation-expression">
    <toplink:left name="expiryTime" xsi:type="toplink:query-key-expression">
    <toplink:base xsi:type="toplink:base-expression"/>
    </toplink:left>
    <toplink:right xsi:type="toplink:constant-expression">
    <toplink:value xsi:type="xsd:date">2007-07-30</toplink:value>
    </toplink:right>
    </opm:criteria>
    <toplink:timeout>0</toplink:timeout>
    <toplink:reference-class>ExpiredTripPoller.Trip</toplink:reference-class>
    <toplink:cache-usage>primary-key</toplink:cache-usage>
    <toplink:lock-mode>none</toplink:lock-mode>
    <toplink:container xsi:type="toplink:list-container-policy">
    <toplink:collection-type>java.util.Vector</toplink:collection-type>
    </toplink:container>
    </opm:query>
    <opm:query name="findAllTrip" xsi:type="toplink:read-all-query">
    <toplink:timeout>0</toplink:timeout>
    <toplink:reference-class>ExpiredTripPoller.Trip</toplink:reference-class>
    <toplink:cache-usage>primary-key</toplink:cache-usage>
    <toplink:lock-mode>none</toplink:lock-mode>
    <toplink:container xsi:type="toplink:list-container-policy">
    <toplink:collection-type>java.util.Vector</toplink:collection-type>
    </toplink:container>
    </opm:query>
    </opm:queries>
    <toplink:does-exist-query xsi:type="toplink:does-exist-query">
    <toplink:existence-check>check-database</toplink:existence-check>
    </toplink:does-exist-query>
    <toplink:read-all-query xsi:type="toplink:read-all-query">
    <toplink:reference-class>ExpiredTripPoller.Trip</toplink:reference-class>
    <toplink:container xsi:type="toplink:list-container-policy">
    <toplink:collection-type>java.util.Vector</toplink:collection-type>
    </toplink:container>
    </toplink:read-all-query>
    </opm:querying>
    <opm:attribute-mappings>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>id</opm:attribute-name>
    <opm:field table="TRIP" name="ID" xsi:type="opm:column"/>
    <opm:attribute-classification>java.math.BigDecimal</opm:attribute-classification>
    </opm:attribute-mapping>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>lpn</opm:attribute-name>
    <opm:field table="TRIP" name="LPN" xsi:type="opm:column"/>
    <opm:attribute-classification>java.lang.String</opm:attribute-classification>
    </opm:attribute-mapping>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>startTime</opm:attribute-name>
    <opm:field table="TRIP" name="START_TIME" xsi:type="opm:column"/>
    <opm:attribute-classification>java.sql.Timestamp</opm:attribute-classification>
    </opm:attribute-mapping>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>expiryTime</opm:attribute-name>
    <opm:field table="TRIP" name="EXPIRY_TIME" xsi:type="opm:column"/>
    <opm:attribute-classification>java.sql.Timestamp</opm:attribute-classification>
    </opm:attribute-mapping>
    <opm:attribute-mapping xsi:type="toplink:direct-mapping">
    <opm:attribute-name>status</opm:attribute-name>
    <opm:field table="TRIP" name="STATUS" xsi:type="opm:column"/>
    <opm:attribute-classification>java.math.BigDecimal</opm:attribute-classification>
    </opm:attribute-mapping>
    </opm:attribute-mappings>
    <toplink:descriptor-type>independent</toplink:descriptor-type>
    <toplink:caching>
    <toplink:cache-type>weak-reference</toplink:cache-type>
    <toplink:always-refresh>true</toplink:always-refresh>
    </toplink:caching>
    <toplink:remote-caching>
    <toplink:cache-type>weak-reference</toplink:cache-type>
    </toplink:remote-caching>
    <toplink:instantiation/>
    <toplink:copying xsi:type="toplink:instantiation-copy-policy"/>
    <toplink:change-policy xsi:type="toplink:deferred-detection-change-policy"/>
    <toplink:tables>
    <toplink:table name="TRIP"/>
    </toplink:tables>
    </opm:class-mapping-descriptor>
    </opm:class-mapping-descriptors>
    </toplink:object-persistence>
    On deployment, this version of the BPEL process behaved as expected - only modifying the records with EXPIRY_TIME less thatn the literal time specified. (Also, I can't really pass in the time as a parameter as this is a polling model).
    Can anyone shed any light on what is happening or suggest how I might go about polling in the desired way?
    Cheers

    Please take a look at this article which states SYSDATE is not supported in a
    where clause.
    http://www.oracle.com/technology/pub/articles/bpel_cookbook/qualcomm-bpel.html
    Excerpt from the article:
    Here are three important things you should do in implementing the above design:
    Have the status of the record being processed stored in the database. The status includes the process state, next process attempt time, and processing attempt count.
    Create an updatable view that exposes only records that are ready to be processed. A view is needed because the database adapter cannot handle a where clause that compares against SYSDATE.
    Design logic that determines if a process instance that has faulted should be retried and when the retry should occur. This information will be updated in the database by use of a stored procedure. This can also be done with an update partner link and additional logic in BPEL.
    mahalo,
    a iii

  • How to set the password encrytacion a database. Accdb from Visual Basic 2010 for a report. Rpl

    I want to know how to set the password encrytacion a database. Accdb from Visual Basic 2010 for a report. Rpl

    You have to connect via ODBC, then use code along the lines of what is described here:
    http://scn.sap.com/thread/3526924
    by me on March 28 and Jan on March 29.
    Also see KBA: 1686419 - SAP Crystal Reports designer does not recognize Access *.accdb file
    - Ludek
    Senior Support Engineer AGS Product Support, Global Support Center Canada
    Follow us on Twitter

  • Dynamic UserID/Password for file Adapter

    Hi,
    How to use dynamic UserId/Password for file adapter ?
    (Sender/Receiver)
    In our case the Id/Pwd of FTP Site changes freguently.
    Can anyone help.
    Thanks in Advance
    Regards
    Chemmanz

    Hi Chemmanz,
    >>>>In our case the Id/Pwd of FTP Site changes freguently.
    but do you have those passwords in the message payload?
    if not then you will still have to fill it somewhere right?
    BTW
    the only way would be to use java proxies and write a simple ftp adapter inside it (or your own adapter)
    but this is not possible in standard I believe
    Regards,
    michal

Maybe you are looking for