"Current Service" psr output not reset to IDLE when several services called within a same service are over (Doc ID 1562617.1)

Last updated on NOVEMBER 04, 2016

Applies to:

Oracle Tuxedo - Version 11.1.1.2.0 and later
Information in this document applies to any platform.

Symptoms

.

Following code cinematic is executed :

 

 

Client pseudo-code
    Calling testServ1 service :
    tpcall (testServ1)
        Within testServ1
            Calling testServ2 service :
            tpcall (testServ2)
                Within testServ2 service :
                    Successfull service in an application code logic
                    tpreturn (TPSUCCESS)
            Calling testServ3 service :
            tpcall (testServ3)
                Within testServ3 service :
                    Successfull service in an application code logic
                    tpreturn (TPSUCCESS)
            For application code logic, a failure must be returned
            tpreturn (TPFAIL)
    Getting TPESVCFAIL error
End of client pseudo-code   

The service Service1 returns an application error TPFAIL and the client receives TPEFAIL error.

 

 

$ tmadmin -v
INFO: Oracle Tuxedo, Version 11.1.1.2.0, 64-bit, Patch Level 086
$ echo psr | tmadmin 2> /dev/null

Prog Name      Queue Name  Grp Name  ID RqDone Load Done Current Service
---------      ----------  --------  -- ------ --------- ---------------
BBL            112086      test11g+   0      0         0 (  IDLE )
test11gR1PS1_R 00001.00001 GROUP1     1      0         0 (  IDLE )
test11gR1PS1_R 00001.00002 GROUP1     2      0         0 (  IDLE )
test11gR1PS1_R 00001.00003 GROUP1     3      0         0 (  IDLE )
WSL            00001.00050 GROUP1    50      0         0 (  IDLE )

>
$ test11gR1PS1_RP086_client
tpcall failed: TPESVCFAIL - application level service failure
$ echo psr | tmadmin 2> /dev/null

Prog Name      Queue Name  Grp Name  ID RqDone Load Done Current Service
---------      ----------  --------  -- ------ --------- ---------------
BBL            112086      test11g+   0      0         0 (  IDLE )
test11gR1PS1_R 00001.00001 GROUP1     1      1        50 (  IDLE )
test11gR1PS1_R 00001.00002 GROUP1     2      0         0 testServ2
test11gR1PS1_R 00001.00003 GROUP1     3      0         0 testServ3
WSL            00001.00050 GROUP1    50      0         0 (  IDLE )

>
$

 

Instead of reporting testServ2 and testServ3, IDLE should be returned.

 

No problem if TPSUCCESS was returned by testServ1.

 

 

Cause

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