Af:poll timeout is not working
I loved this article about auto-dismissing a popup using a one-time poll:
http://www.oracle.com/technetwork/developer-tools/adf/learnmore/105-autohidepopup-1881092.pdf
However, when I implement the idea, the poll doesn't timeout. Here is what I have:
<af:popup binding="#{backingBeanScope.backing_action.successPopup}"
id="successPopup" childCreation="deferred"
autoCancel="enabled">
<af:poll binding="#{backingBeanScope.backing_action.p4}" id="p4"
timeout="2100"
pollListener="#{backingBeanScope.backing_action.closeOnPoll}"
partialTriggers="#{backingBeanScope.backing_action.successPopup}"
interval="2000"/>
<af:dialog binding="#{backingBeanScope.backing_action.d5}" id="d5"
type="ok" title="#{mesviewcontrollerBundle.SUCCESS}"
closeIconVisible="false"
dialogListener="#{backingBeanScope.backing_action.closeSuccessPopup}">
<af:panelGroupLayout binding="#{backingBeanScope.backing_action.pgl7}"
id="pgl7">
<af:outputFormatted value="#{mesviewcontrollerBundle.TRAN_SUCCESS}"
binding="#{backingBeanScope.backing_action.of3}"
id="of3"/>
</af:panelGroupLayout>
</af:dialog>
</af:popup>Could it be JDev/ADF Version? I know the tutorial is in 11.1.2.3?
I am at: Oracle JDeveloper 11g Release 1 11.1.1.6.0
Or could it possibly be that the tutorial is a .jsf, and I have a .jspx?
Thanks,
Arie
Arie, I took a second look at it and you are right, the poll doesn't time out after the timeout interval is reached. Looks like a bug to me (using 11.1.1.6, not tested it using 11.1.2.3).
I implemented a fix for this, which I upload as soon as the sample side is back online. Looks like they are working on it at the moment.
The fix is to set the interval to -1 after you hide the popup and set it to the interval (5000) when the popup is fetched the next time. I've implemented this in a generic way in the bean as
public void handleClosePopup(PollEvent pollEvent) {
UIComponent uic = pollEvent.getComponent();
while (uic != null && !(uic instanceof RichPopup)) {
uic = uic.getParent();
if (uic != null) {
String popupid = ((RichPopup)uic).getId();
((RichPopup)uic).hide();
((RichPoll)pollEvent.getComponent()).setInterval(-1);
AdfFacesContext.getCurrentInstance().addPartialTarget(pollEvent.getComponent());
if (logger.isLoggable(Level.INFO)) {
StringBuilder logMsg = new StringBuilder("Timer Popup id:" + popupid + " canceld");
logger.info(logMsg.toString());
public void popupFetch(PopupFetchEvent popupFetchEvent) {
RichPopup popup = (RichPopup)popupFetchEvent.getSource();
ClientListenerSet clientListenerSet = popup.getClientListeners();
RichPoll poll = findPollComponent(popup);
if (poll != null) {
poll.setInterval(5000);
AdfFacesContext.getCurrentInstance().addPartialTarget(poll);
if (logger.isLoggable(Level.INFO)) {
StringBuilder logMsg = new StringBuilder("Set interval to 5000 for popup id:" + popup.getId());
logger.info(logMsg.toString());
private RichPoll findPollComponent(UIComponent start) {
if (start == null)
return null;
if (start instanceof RichPoll)
return (RichPoll)start;
List<UIComponent> children = start.getChildren();
for (UIComponent ui : children) {
if (ui instanceof RichPoll)
return (RichPoll)ui;
RichPoll rp = findPollComponent(ui);
if (rp != null)
return rp;
return null;
}As sonn as I managed to upload hte new sample I come back.
Timo
Similar Messages
-
Read Timeout is not working with business service in OSB 11.6
HI All,
We have set below configuration in "Http Transport Configuration" of a business service.
Read Timeout- 8
Connection Timeout - 8
Authentication - None
Proxy Serve
Follow HTTP redirects - Disable
Use Chunked Streaming Mode - Enable
Even though backend is taking more than the configured value in Read Timeout but timeout is not happening in OSB, Connection time out also not worked, when we tested with wrong backend URL.
Any help for this configuration would appreciated.
Thanks,.Hi,
Have you invoked any Services before calling the Business Service.
If Yes, then the problem with the Invoked service.In this scenario even if you set the time out period it will not work..
If No, your request payload is high
Regards,
Kiran -
read-timeout-seconds not working
(WL 5.1, SP 11)
Hi all,
I'm playing around with Read-Only entity beans, and I get a problem
with the read-timeout-seconds property. I've set my
weblogic-ejb-jar.xml like this:
<ejb-name>product.entity</ejb-name>
<caching-descriptor>
<max-beans-in-cache>1000</max-beans-in-cache>
<cache-strategy>Read-Only</cache-strategy>
<read-timeout-seconds>60</read-timeout-seconds>
</caching-descriptor>
The first call to the EJB caches the database record, and subsequent
calls use the cache. My problem: Even if I delete the database record
directly (I know, I shouldn't do that... but like I said, I'm playing
around here... ;)) and wait for more than 60 seconds, the next call to
the bean still returns the same cached entry.
I tried with <idle-timeout-seconds> set to 60, and it doesn't work
neither.
I've seen in previous messages that this problem (or similar) was
fixed in SP4, but I use SP11, so it shouldn't be the problem.
Thanks for your help!
PhilHi,
Have you invoked any Services before calling the Business Service.
If Yes, then the problem with the Invoked service.In this scenario even if you set the time out period it will not work..
If No, your request payload is high
Regards,
Kiran -
Polling over https not working
Hi,
How do I change below to make it work with https? I tried with AMFSecureChannel but that did not work. Appreciate any help... thanks!
<channel-definition id="my-amf-poll" class="mx.messaging.channels.AMFChannel">
<endpoint
url="http://{server.name}:{server.port}/{context.root}/messagebroker/amfpoll"
class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<polling-enabled>true</polling-enabled>
<polling-interval-seconds>1</polling-interval-seconds>
</properties>
</channel-definition>Hi
I think you don't need to do all these things. With default setting create a HTTPService component and assign the required url to it. You can assign the resultFormat.Call the send() method. Optionally you can pass argument to it.
Hope this helps
Rush-me -
Polling to Database not working sometimes
Hi all,
I have created an ESB project. I am using polling operation to poll Oracle database table. I am using update field i.e. logical delete opeartion under polling.
I have deployed my process, its running perfectly fine. Polling is also happening.
But the problem is that polling is not consistent. With the same set of values, sometime polling takes place and some time nothing happens, means no update in the table & no instanses on ESB Console.
I have checked the log file too, but no such entry is there.
To overcome this problem, Whenever I restart my SOA server(10.1.3.3) everything works fine. But after few hours same thing happens.
Can anybody tell me, how to figure out what is happening.
Thanks,
Abhi...
Message was edited by:
Abhishek saurabhHi chintan,
I made this change in the logger configuration yesterday. Today morning when I logged into my ESB console and navigated to instance tab, I am not able to see any instance and I am getting this error:
An unhandled exception has been thrown in the ESB system. The exception reported is: "oracle.tip.esb.model.repository.exception.RepositoryException: Unable to get connection to Repository Ensure repository is accessible at oracle.tip.esb.model.repository.database.DatabaseRepository.getConnection(DatabaseRepository.java:1228) at oracle.tip.esb.model.repository.database.DatabaseRepository.getESBParameter(DatabaseRepository.java:1082) at ......<more..>
(Thread.java:595) Caused by: java.sql.SQLException: ORA-00257: archiver error. Connect internal only, until freed. at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:138) at
.....<more>
So I went to EM console, oc4j_soa->Administration tab->JDBC resorces->Connection pool->ESBpool(For ESB)->Test connection->Pressed Test button.
I am getting this error:
Unable to establish connection to "ESBPool". Error message: Exception occurred testing connection. Exception: java.sql.SQLException: ORA-00257: archiver error. Connect internal only, until freed
Any inputs on this...
Thanks,
Abhishek... -
Timeout script not working quite right.
I'm doing a kiosk project that has 11 scenes that house about
70 videos for playback. I need to include a timeout function that
needs to revert back to screen #1 if there is no mouse activity for
around 8 minutes. There is another timeout script in scene #2 that
forwards ahead to scene #3 if no activity within 30 seconds. The
timeouts do seem to work, they go to and stop where they're
supposed to but then they seem to rerun themselves so that several
are running at the same time. When I click into other scenes which
start the videos, then they will quit and jump back to screen #1
after 30 seconds or so.
Any help on this would be greatly appreciated...You're posting AS2 code in the AS3 forum. Anyways, Try moving
your mouse around while you're watching the videos and see if they
kick back to the first scene... chances are myInterval is still
working in the other scenes.
I'm not sure, but I don't think changing scenes cancels that
kind of functionality. From what I heard, when you work with
scenes, when the file is compiled, it melds them all into one long
timeline (hear-say only, so I won't mind being straightened out on
that). -
Lock-timeout does not work with Concurrent Data Store
Hello,
If my application (Concurrent Data Store) does not close all locks (e.g. crash, ...), these
locks are never removed. My application sets the following timeout values:
DB_ENV->set_timeout(DB_SET_LOCK_TIMEOUT,60*1000*1000);
DB_ENV->set_lk_detect(DB_LOCK_EXPIRE);
Once a minute:
DB_ENV->lock_detect( 0, DB_LOCK_EXPIRE, NULL );
If a process keeps a lock open, all further processes will be blocked. "db_deadlock"
also does not remove these old locks.
Thank you very much
JosefThe functions you called are supposed to work when the locking subsystem is enabled, and if you use CDS, you can't startup the locking subsystem. When using CDS, you normally don't have to worry about locks, BDB will take care of locks and make it deadlock free. Have a look at the documentation at http://www.oracle.com/technology/documentation/berkeley-db/db/api_c/frame.html
-
Wls 10.3 weblogic-webservices.xml transaction-timeout attribute not working
Hi, need some urgent need.
I have a stateless ejb webservice and I'm trying to set the transaction timeout for some of the methods. Right now my webservice transaction is timing out to the default of 30 secs. I've tried setting in the admin console the JTA transaction timeout option, didn't work (file a case with bea support #81233). And after days of researching and searching I came across that you can setup the weblogic webservice transaction-timeout thru the weblogic-webservices.xml deployment descriptor. Tried setting the transaction-timeout attribute to 120 secs. and that didn't work. Here is the snippet of the xml file.
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-webservices xmlns="http://www.bea.com/ns/weblogic/weblogic-webservices" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-webservices http://www.bea.com/ns/weblogic/weblogic-webservices/1.0/weblogic-webservices.xsd">
<webservice-description>
<webservice-description-name>com.starcomsoft.pp.system.jws.SystemWSImpl</webservice-description-name>
<webservice-type>JAXRPC</webservice-type>
<port-component>
<port-component-name>SystemWSSoapPort</port-component-name>
<service-endpoint-address>
<webservice-contextpath>starcomsoft_ws</webservice-contextpath>
<webservice-serviceuri>/SystemWSImpl</webservice-serviceuri>
</service-endpoint-address>
<transaction-timeout>120</transaction-timeout>
<reliability-config>
<inactivity-timeout>P0DT600S</inactivity-timeout>
</reliability-config>
</port-component>
</webservice-description>
</weblogic-webservice>
Does anybody have any clue to solve my urgent need.
Thanks in advance for your help or suggestion.Unhandled exception
Type=Segmentation error vmState=0x00040000
J9Generic_Signal_Number=00000004 Signal_Number=0000000b Error_Value=00000000 Signal_Code=00000033
Handler1=F144C588 Handler2=F1446A9C
Module=/app/oracle/product/Middleware/wlserver_10.3/server/native/aix/ppc/libmuxer.so
Module_base_address=D8457000
Target=2_40_20091214_049398 (AIX 5.3)
CPU=ppc (4 logical CPUs) (0x600000000 RAM)
----------- Stack Backtrace -----------
(0xD696E748 [libj9vm24.so+0x48748])
(0xD8383EDC [libjclscar_24.so+0x10edc])
(0xD8384514 [libjclscar_24.so+0x11514])
(0xD6967718 [libj9vm24.so+0x41718])
(0xD6967158 [libj9vm24.so+0x41158])
(0xD69640D0 [libj9vm24.so+0x3e0d0])
(0xD6932C9C [libj9vm24.so+0xcc9c])
(0xD69BBA18 [libj9prt24.so+0x3a18])
(0xD6932BB8 [libj9vm24.so+0xcbb8])
(0xD69A77CC [libj9thr24.so+0x27cc])
pthreadbody+0x118 (0xD010D784 [libpthreads.a+0x3784]) -
Lock-timeout does not work with
Hello all,
I have a problem with remaining locked records when my application abnormally terminated (crashes, ...).
More specific, I open the db environment and then set_timeout 1000 for DB_SET_TXN_TIMEOUT and 1000 for DB_SET_LOCK_TIMEOUT.
Then I open a transaction and read a record with the DB_RMW flag. At this point my application crashes, without abort or commit the transaction.
After restarting my application and trying to read this specific record, I took the error 30994.
I run the db_deadlock utility with the -ae argument but still this specific record remained lock.
Is there any way to unlock this spcific page?
Thank you in advanceHello,
If your transactional application is crashing are you following the guidelines in the "Handling failure in Transactional Data Store applications" section of the reference guide at:
http://www.oracle.com/technology/documentation/berkeley-db/db/programmer_reference/transapp_fail.html
With transactional applications there are issues to consider if a thread of control (either a thread or process) fails to prevent database environment and database corruption. For example, when a thread of control fails resources maintained by the database environment may be left locked or corrupted. Is your application calling recovery any time a thread of control accessing the database environment fails? You may also find the environment failchk method useful. The DB_ENV->failchk() method will release any database read locks that have been left held by the exit of a thread of control, and abort any unresolved transactions. It will also return DB_RUNRECOVERY if the database environment is unusable as a result of the thread of control failure and then recovery needs to be run.
Thanks,
Sandra -
Polling DB Adapter is not working when "NumberOfThreads" value= 1
Hi All,
I am facing an issue with DB adapter in OSB.
My requirement is, i have one table name as "Header Table",for every 1 sec around 5 messages are inserted into this table.By using that records i need to call API.
For this i created one DB adapter with polling option.It is poll the Header table for every 3 seconds and fetch the 5 records.Suppose in first iteration at 3 seconds it poll and get 5 records
One proxy service is created for that Adapter jca file.This proxy will get the records and call the API.
But here issue is the thread is poll the table after first iteration(first 5) records are processing only.After All 5 records are processed only the next polling happening.
That means every 3 sec polling is not happening.
For this i increased NumberOfThreads value =3 in Adapter jca file.Then polling is Not working,it is completely stopped not even 3 sec also?
I tried with both XA , NonXA adapters and Distributed polling option also.But it is not working.This is not working in Cluster environment and as well as my local system?
When i use NumberOfThreads=1 it is working,More than 1 it is not working
These properties i used for JCA file.
<activation-spec className="oracle.tip.adapter.db.DBActivationSpec">
<property name="DescriptorName" value="GOP_DB_FSL_HEADER_POLLING_APICALL.XxGilSvcOrderHeader"/>
<property name="QueryName" value="GOP_DB_FSL_HEADER_POLLING_APICALLSelect"/>
<property name="MappingsMetaDataURL" value="GOP_DB_FSL_HEADER_POLLING_APICALL-or-mappings.xml"/>
<property name="PollingStrategy" value="LogicalDeletePollingStrategy"/>
<property name="MarkReadColumn" value="SOA_POLL_STATUS"/>
<property name="MarkReadValue" value="C"/>
<property name="MarkUnreadValue" value="W"/>
<property name="PollingInterval" value="3"/>
<property name="MaxRaiseSize" value="1"/>
<property name="MaxTransactionSize" value="5"/>
<property name="NumberOfThreads" value="1"/>
<property name="ReturnSingleResultSet" value="false"/>
<property name="SequencingColumn" value="OFS_CREATEDDATE"/>
<property name="MarkReservedValue" value="R${weblogic.Name-2}-${IP-2}"/>
</activation-spec>
===========================================================
Professionals, Please Help me on the same
Thanks in Advance
AVHi All,
I am facing an issue with DB adapter in OSB.
My requirement is, i have one table name as "Header Table",for every 1 sec around 5 messages are inserted into this table.By using that records i need to call API.
For this i created one DB adapter with polling option.It is poll the Header table for every 3 seconds and fetch the 5 records.Suppose in first iteration at 3 seconds it poll and get 5 records
One proxy service is created for that Adapter jca file.This proxy will get the records and call the API.
But here issue is the thread is poll the table after first iteration(first 5) records are processing only.After All 5 records are processed only the next polling happening.
That means every 3 sec polling is not happening.
For this i increased NumberOfThreads value =3 in Adapter jca file.Then polling is Not working,it is completely stopped not even 3 sec also?
I tried with both XA , NonXA adapters and Distributed polling option also.But it is not working.This is not working in Cluster environment and as well as my local system?
When i use NumberOfThreads=1 it is working,More than 1 it is not working
These properties i used for JCA file.
<activation-spec className="oracle.tip.adapter.db.DBActivationSpec">
<property name="DescriptorName" value="GOP_DB_FSL_HEADER_POLLING_APICALL.XxGilSvcOrderHeader"/>
<property name="QueryName" value="GOP_DB_FSL_HEADER_POLLING_APICALLSelect"/>
<property name="MappingsMetaDataURL" value="GOP_DB_FSL_HEADER_POLLING_APICALL-or-mappings.xml"/>
<property name="PollingStrategy" value="LogicalDeletePollingStrategy"/>
<property name="MarkReadColumn" value="SOA_POLL_STATUS"/>
<property name="MarkReadValue" value="C"/>
<property name="MarkUnreadValue" value="W"/>
<property name="PollingInterval" value="3"/>
<property name="MaxRaiseSize" value="1"/>
<property name="MaxTransactionSize" value="5"/>
<property name="NumberOfThreads" value="1"/>
<property name="ReturnSingleResultSet" value="false"/>
<property name="SequencingColumn" value="OFS_CREATEDDATE"/>
<property name="MarkReservedValue" value="R${weblogic.Name-2}-${IP-2}"/>
</activation-spec>
===========================================================
Professionals, Please Help me on the same
Thanks in Advance
AV -
Filter not working for session timeout
Hi all,
I am working on a struts application in portal. I want to logout of the application when a user does not perform any action, for say 30 mins. For this, i am using a filter and defined the filter as follows in web.xml.
<filter>
<filter-name>PageFilter</filter-name>
<filter-class>SessionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PageFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Also i gave the timeout in web.xml as follows.
<session-config>
<session-timeout>30</session-timeout>
</session-config>
And i had the filter servlet as follows.
public class SessionTimeoutFilter implements Filter
public SessionFilter()
public void init(FilterConfig conf) throws ServletException {
public void destroy()
// Create a new instance of SessionFilter
private static int firstRequest = 0;
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)
throws IOException,ServletException
HttpServletRequest hreq = (HttpServletRequest)request;
HttpServletResponse hres = (HttpServletResponse)response;
HttpSession session = hreq.getSession();
try{
if (session.isNew()) {
if(firstRequest == 0){
firstRequest++;
else {
hres.sendRedirect("http://www.google.com");
firstRequest = 0;
return;
}catch(Exception e){
e.printStackTrace();
chain.doFilter(request,response);
When trying to execute this one i am getting a portlet 500 internal error. I am not sure where i went wrong. Can anyone give me a suggestion for this to work in a portal.?
Thx in advance....Hi,
Thx for ur reply, Here i am using firstRequest as a counter variable. when the session is new and firstRequest is 1, it means that the session has expired and new session started and this is where i am redirecting to another page. The problem is, i think is mainly because of the sendRedirect i am using there in the code. I think sendRedirect will not work in portal, because when i test this application locally , it is working fine. But when i deploy it in portal, i am getting the error. Can you suggest me an alternative for sendredirect in portal.Even i tried with forward but no use.
Thx.... -
af:poll not working in adf table
Hi All,
Does anyone have tried create timer using <af:poll inside a table?, i have a problem like this:
<trh:script>
var count=0;
var timer;
var sec;
var min;
function startCount(event){
inputField = event.getSource().findComponent("totalTime");
inputField.setValue(timer);
count=count+1;
sec = Math.floor(count / 100);
min = Math.floor(count / 6000);
hour = Math.floor(count / 360000);
if (sec >= 60) {
sec = sec - 60 * min;
if (min >= 60) {
min = min - 60 * hour;
timer = pad2(hour) + ':' + pad2(min) + ':' + pad2(sec);
function startAndStopPoll(event) {
event.cancel();
var poll = AdfPage.PAGE.findComponent("poll");
if (0 > poll.getInterval())
poll.setInterval(10);
else
poll.setInterval(-1);
function pad2(number) {
return (10 > number) ? '0' + number : number;
</trh:script>
then if i put this script :
<af:panelFormLayout>
<af:poll id="poll" interval="-1">
<af:clientListener type="poll" method="startCount"/>
</af:poll>
<af:inputText label="Total Time" id="totalTime" shortDesc="Total time" clientComponent="true"
value="00:00:00"/>
</af:panelFormLayout>
<af:panelGroupLayout layout="horizontal">
<af:commandButton text="Start and Stop Poll" id="button">
<af:clientListener type="action" method="startAndStopPoll"/>
</af:commandButton>
</af:panelGroupLayout>
out side the table it is working, but if i put that script inside the table it is not working.. does any one know what happen with the script?
Regards,
Hadi WijayaHi Frank,
Actually i want create timer to record how long does customer service (CS) spend the speaking time with each customer. and the scenario is like this :
1. customer call the CS
2. CS click add button to start a new record in the table
3. then one of table column has start/stop button and one input text which is the input text will be filled by timer like stopwatch (00:00:00)
4. then CS click the start/stop button to start the timer.
5. button stop pressed by the CS after call is over.
6. CS will add new row for next customer again and again
Do you have a suggestion for scenario like this?
Regards,
Hadi Wijaya
Edited by: Hadi Wijaya on Jul 1, 2009 12:02 AM -
Revision: 3913
Author: [email protected]
Date: 2008-10-27 13:49:02 -0700 (Mon, 27 Oct 2008)
Log Message:
BLZ-272 Two long polling endpoints not working in same app with Firefox
The long polling waitMonitor object in the FlexSession did not keep track of
blocking polls via endpoint ID. This prevented the second channel from blocking.
Enhance the FlexSession.waitMonitor to be a map of endpointID to
EndpointQueue objects, and keep track of the monitors based on what endpoint
they are associated with.
QA: Yes
Doc:No
Checkintests: passed
Ticket Links:
http://bugs.adobe.com/jira/browse/BLZ-272
Modified Paths:
blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/FlexSession.java
blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/client/FlexClient.javaRevision: 3913
Author: [email protected]
Date: 2008-10-27 13:49:02 -0700 (Mon, 27 Oct 2008)
Log Message:
BLZ-272 Two long polling endpoints not working in same app with Firefox
The long polling waitMonitor object in the FlexSession did not keep track of
blocking polls via endpoint ID. This prevented the second channel from blocking.
Enhance the FlexSession.waitMonitor to be a map of endpointID to
EndpointQueue objects, and keep track of the monitors based on what endpoint
they are associated with.
QA: Yes
Doc:No
Checkintests: passed
Ticket Links:
http://bugs.adobe.com/jira/browse/BLZ-272
Modified Paths:
blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/FlexSession.java
blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/client/FlexClient.java -
Seperate DB Update not working at the end of transaction after polling DB
I am using DB Adapters in OSB(built using JDveloper) to poll a DB. I am doing logical delete on one of the field(PROC_RSLT) on table by updating read column to 0.
The issue is after I have done the polling and send the polled data to external party, external party send me a response which I have to again update to PROC_RSLT field.
1. This update is not working if my JCA adapter proxy service having "transaction" and "Same Transaction For Response " options are disabled.
2. When I enable the "Same Transaction For Response" option my DB update after external system with external system response is possible but logical delete(update to 0) on PROC_RSLT happen only after transaction is completed.
Since PROC_RSLT is not updated to 0 same record is polled by adapter multiple times. I want my PROC_RSLT to be updated as soon as it poll and also my DB update to happen with external system response
Can anyone help?
ThanksPlease refer section "Update a Field in the [Table_Name] Table (Logical Delete)" at below link -
http://download.oracle.com/docs/cd/E17904_01/integration.1111/e10231/adptr_db.htm#BABEEBIH
Database Configuration: A status column on the table being polled must exist. If it does not exist already, you can add one to an existing table.
Support for Polling for Updates: Given that rows are not deleted with each read, it is possible to repetitively read a row multiple times. You must add a trigger to reset the mark read field whenever a record is changed, as follows:
create trigger Employee_modified
before update on Employee
for each row
begin
:new.STATUS := 'MODIFIED';
end;
Support for Concurrent Access Polling: Just as a single instance should never process an event more than once, the same applies to a collection of instances. Therefore, before processing a record, an instance must reserve that record with a unique value. Again, the status column can be used:
<operation name="receive">
<jca:operation
ActivationSpec="oracle.tip.adapter.db.DBActivationSpec"
PollingStrategyName="LogicalDeletePollingStrategy"
MarkReadField="STATUS"
MarkUnreadValue="UNPROCESSED"
MarkReservedValue="RESERVED${IP-2}-${weblogic.Name-1}-${instance}"
MarkReadValue="PROCESSED"
The polling query instead appears, as shown in the following example:
Update EMPLOYE set STATUS = 'RESERVED65-1-1' where (CRITERIA) AND (STATUS = 'UNPROCESSED');
Select … from EMPLOYEE where (CRITERIA) AND (STATUS = 'RESERVED65-1-1');
The after-read UPDATE is faster because it can update all:
Update EMPLOYEE set STATUS = 'PROCESSED' where (CRITERIA) AND (STATUS = 'RESERVED65-1-1');Your second aaproach should work -
2. With option ”Same transaction for Response” Enabled : PROC_RSLT is not updated to 0 as soon as record is polled. Instead it is updated to resultcode from CSM at the end of transaction. By that time DB adapter poll for multiple times as PROC_RSLT is still considered unread(not 0).Regards,
Anuj -
DB Adapter polling as singleton process is not working as expected
Am using poller DB adapater to control the transaction per seconds to the downstream system and i want this poller process as singleton (One instance should be in running state at a time).
As suggested in oracle documents , below is the parameters configured in composite.xml file.
<service name="polling_Mange_Alert_Events"
ui:wsdlLocation="polling_Mange_Alert_Events.wsdl">
<interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/db/Application1/int_app_manageAlerts/polling_Mange_Alert_Events#wsdl.interface(polling_Mange_Alert_Events_ptt)"/>
<binding.jca config="polling_Mange_Alert_Events_db.jca">
<property name="singleton">true</property>
</binding.jca>
<property name="jca.retry.count" type="xs:int" many="false" override="may">2147483647</property>
<property name="jca.retry.interval" type="xs:int" many="false"
override="may">1</property>
<property name="jca.retry.backoff" type="xs:int" many="false"
override="may">2</property>
<property name="jca.retry.maxInterval" type="xs:string" many="false"
override="may">120</property>
</service>
Below is the JCA file parameters configured :
<adapter-config name="polling_Mange_Alert_Events" adapter="Database Adapter" wsdlLocation="polling_Mange_Alert_Events.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
<connection-factory location="eis/DB/vff-int-fus" UIConnectionName="PT_APPINFRA" adapterRef=""/>
<endpoint-activation portType="polling_Mange_Alert_Events_ptt" operation="receive">
<activation-spec className="oracle.tip.adapter.db.DBActivationSpec">
<property name="DescriptorName" value="polling_Mange_Alert_Events.ManageAlertEvents"/>
<property name="QueryName" value="polling_Mange_Alert_EventsSelect"/>
<property name="MappingsMetaDataURL" value="polling_Mange_Alert_Events-or-mappings.xml"/>
<property name="PollingStrategy" value="LogicalDeletePollingStrategy"/>
<property name="MarkReadColumn" value="TRANSACTION_STATUS"/>
<property name="MarkReadValue" value="Processing"/>
<property name="PollingInterval" value="10"/>
<property name="MaxRaiseSize" value="5"/>
<property name="MaxTransactionSize" value="5"/>
<property name="NumberOfThreads" value="1"/>
<property name="ReturnSingleResultSet" value="false"/>
<property name="MarkUnreadValue" value="Pending"/>
</activation-spec>
</endpoint-activation>
</adapter-config>
This poller process is running on clustered environment (2 soa nodes) and it is not working as expected as singleton process.
Please advise to solve this issue ?Hi,
1.Set Singleton property outside <binding.jca> like this:
<binding.jca config="polling_Mange_Alert_Events_db.jca"/>
<property name="singleton">true</property>
<property name="jca.retry.count" type="xs:int" many="false" override="may">2147483647</property>
<property name="jca.retry.interval" type="xs:int" many="false"
2.Also you can try setting these values in jca file:
<property name="RowsPerPollingInterval" value="100"/>
<property name="MaxTransactionSize" value="100"/>
3. try to increase the polling interval time.
Regards,
Anshul
Maybe you are looking for
-
Problem with sessions in Kate Editor
Hey guys! I'm using Kate Editor to code and i'm having problems with sessions. If kate is open and I logout KDE, when I come back to KDE all my customizations in Kate's session (activated plugins, font size, etc) are lost. If I manually close Kate be
-
CSS layout problems in Explorer (fine in Firefox and Safari)
Firstly apologies to the mods, I had mistakenly posted this in the dynamic section also... My problem - I am working on a CSS site (my first!) here http://www.benfrain.com It appears fine in Firefox (PC and Mac) and Safari (mac) but when I view it in
-
Hi folks, I try to use GlassPane to dispatch event to a JComboBox in a JTable. The problem occurs when I try to dispatch events to the popup menu. First, when the mouse moves into the region of popup, SwingUtilities.getDeepestComponenet() always retu
-
I cannot open this spreadsheet: runninglog.xltx.cpgz how do i open it?
I installed Templates for MS Office. I want a spreadsheet for my workouts. How do I open runninglog.xltx.cpgz Thanks.
-
ASTE_AcrobatSte_10_WWEFD download corrupted
I've tried to download the Adobe Acrobat X Suite installation files twice now and both times the file was corrupted! Does anyone know how to get hold of uncorrupted downloads?