Last updated on NOVEMBER 04, 2016
Applies to:Oracle Tuxedo / Tuxedo / 6.5, 6.51
Information in this document applies to any platform
Problem found in Tuxedo v6.5 RP323 on HPUX11-32bit platform. If user calls the tpnotify(with flag=TPACK) during a tpcall execution (ie, before tpcall returns), it will cause the tpcall execution 1) hang forever if NOTIFY is set to DIPIN in ubb or 2) returned TPESYSTEM if NOTIFY is set to SIGNAL in ubb. The testcase is available in /nfs/home3/qchan/lchp12/303730/ackserver(ackclient) Steps to replicate: 1) Open a window for the server side, - goto /nfs/home3/qchan/lchp12/303730/ackserver, modify and run env to setup the proper environment; - modify and tmloadcf -y ubbsimple (you can set NOTIFY to DIPIN or SIGNAL); - comment out the "flag = TPACK;" line in the notifycl.c file to experience the success run of testcase this time; - run mknotify.sh and mkserv.sh to compile the *.c - tmboot -y - run "tail -f stdout &" (this step is important for use to get the clientid information during the test) 2) Open another window for the client side, - goto /nfs/home3/qchan/lchp12/303730/ackclient, modify and run env to setup the proper environment; - run the mkunsol.sh to compile the client *.c; - run "./wunsolcl &" to start the test sequence 3) In the client window, you will see "calling TOUPPER...(time to run notifycl)..." and, In the server window, you will see a printout of this particular clientid[0...3] information (eg, clientid=1013117490, clientid=0, clientid=190, clientid=0) which are used as input parameters for the following command (where the notifycl command format is: ./notifycl anyString clientid clientid clientid clientid) 4) So, run "./notifycl HelloWorld 1013117490 0 190 0" in the server window; ==> you will see in the client window: "disp function is called: data=HelloWorld" 5) Wait for about a minute, you will see "return from TOUPPER...(time to run notifycl)..." in the client window; 6) Then run "./notifycl HelloWorld 1013117490 0 190 0" in the server window again; ==> In about another minute, you will see "disp function is called: data=HelloWorld" again in the client window and, 7) the steps (3) to (6) can be repeated over and over again; The above is what expected behavior of the testcase. Now, if you put the "flag = TPACK;" line back to the notifycl.c file and run mknotify.sh to re-build the notifycl and re-run the above steps again: ==> if you have NOTIFY is set to DIPIN in ubb, it will be hang/stuck at step (5) forever and you will never see the "return from TOUPPER...(time to run notifycl)..." in the client window; ==> if you have NOTIFY is set to SIGNAL in ubb, it will get Tperror = 12 (ie, TPRSYSTEM) at step (5) and the wunsolcl will be terminated.
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms