Hi,
here is the reason for the above question. AL has a ldap update
connector. update was issued to the LDAP thru update connector. the
data was updated but for some reason LDAP server's responce did not
reach TDI server. TDI server was waiting for the response indefinitly
because of the time limit parameter set to '0'. Now i would like to
set the time limit to 30 secs and if the same issue occurs, i would
like to get the error terminate the transaction (not the assembly
line). and reissue the record update again from the Feed. Is there any
way i could issue the record to the feed from the flow? any help is
greately appreciated.
Thanks
Venkul
Also, this may not work as desired for Iterator mode. There is more on
this here:
http://tdiingoutloud.blogspot.com/2009/08/dealing-with-errors.html
and here:
http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/topic/com.ibm.IBMDI.doc_6.1.1/usersguide37.htm?resultof=%22%63%6f%6e%6e%65%63%74%69%6f%6e%22%20%22%63%6f%6e%6e%65%63%74%22%20%22%65%72%72%6f%72%73%22%20%22%65%72%72%6f%72%22%20
(search for "reconnect" in the above page)
and the Flow Diagram for Reconnect is here:
http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/topic/com.ibm.IBMDI.doc_6.1.1/referenceguide159.htm?resultof=%22%72%65%63%6f%6e%6e%65%63%74%22%20
-Eddie
Eddie,
Thanks for the response. I put the reconnect logic already.
My question is what if the ldap did not respond with update
successfull (may be in a hung state). Instead of TDI waiting for the
response as it is hung, is there any way to get the hung response from
LDAP and start the transaction again with system.restartEntry()? I put
the time limit as 5 secs under LDAP config. However, TDI is still hung
state even after 1 minute. Is there any way that i put a code in TDI
to check the LDAP hung state? any help is greatly appreciated.
Thanks
Venkul
com.sun.jndi.ldap.read.timeout:1000
But there are other timeout issues as well, for example firewalls.
Barring this, you could monitor your WorkerAL from another
AssemblyLine, for example by listening for TDI Events.
There is a Connector designed for this purpose:
http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/topic/com.ibm.IBMDI.doc_6.1.1/referenceguide45.htm#servernotconn
You could also have the WorkerAL update a Java property
before and after the Update:
java.lang.System.getProperties().put("timestamp", new
java.util.Date());
and then your other AL could monitor this periodically to see
if the WorkerAL was hanging. If so, it could send out alerts.
If the WorkerAL is started by this monitoring AssemblyLine, e.g.
al = main.startAL("WorkerAL");
then you have a reference to this thread and could kill
it if desired:
al.terminate();
Without this reference then you could also try to get
the Server itself to stop the AL:
numALs2stop = main.stopAL("WorkerAL");
Hope this helps.
-Eddie