Oracle's OPENINFO

Hi, All, I am a newbie for Tuxedo. I test bankapp with Tuxedo 71 and I use Oracle8.1.6.
I compiled the TMS server, but when I boot the application, the TMS Server started
failed. I guest it may be caused by the incorrect OPENINFO:
OPENINFO="Oracle816_XA:
Oracle816_XA+Acc=P/user/passwd+SesTm=30+LogDit=/"
There is no dbms server and sid in it.
The corresponding item in RM is:
"Oracle_XA816:xaosw:-L${ORACLE_HOME}/lib -lclntsh"
Please give me some advice. If the OPENINFO is wrong,please give me a saimple.
Thanks in advance

Hi,
Oracle OPENINFO Entry:
Oracle_XA+Acc=P/<DB_USER>/<DB_PSWD>SqlNet=<ORACLE_SID>SesTm=0+SesWt=150+LogDir=<$IFHOME>/fw3/server/log/mylog
Example:
OPENINFO="Oracle_XA:Oracle_XA+Acc=P/tuxifam/tuxifam+SqlNet=ifambase+SesTm=0+SesWt=150+LogDir=/fw3/ifbin/tux/ulog"
HTH
regards
MS

Similar Messages

  • Unable to boot bankapp servers with Oracle 8.1.7 in windows2000

    Hello,I tried to run bankapp examples with oracle 8.1.7 in windows2000. But when
    I booted the servers using tmboot, there are some errors.(1)I used the following
    RM entries:Oracle_XA;xaosw;D:\Oracle\Ora81\precomp\lib\msvc\oraSQL8.lib D:\Oracle\Ora81\precomp\lib\msvc\oraSQX8.lib
    D:\Oracle\Ora81\RDBMS\xa\ORAXA8.lib (2)The OPENINFO string in the ubbshm file
    is:DEFAULT:TMSNAME=TMS_ORA TMSCOUNT=2 LMID=SITE1
    BANKB1     GRPNO=1 OPENINFO="Oracle_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=100+LogDir=.+MaxCur=5"(3)the
    follow is the error message when I booted the servers:
    .. 174841.GLOBALDB!BALC.852.2572.0: 07-26-2001: Tuxedo Version 8.0 32-bit Windows.
    174841.GLOBALDB!BALC.852.2572.0: LIBTUX_CAT:262: INFO: Standard main starting
    174841.GLOBALDB!BALC.852.2572.0: LIBTUX_CAT:466: ERROR: tpopen TPERMERR xa_open
    returned XAER_RMERR
    174841.GLOBALDB!BALC.852.2572.0: tpsvrinit: failed to open database due to
    174841.GLOBALDB!BALC.852.2572.0: tpopen failed, tperrno: 16
    174841.GLOBALDB!BALC.852.2572.0: LIBTUX_CAT:250: ERROR: tpsvrinit() failed
    174841.GLOBALDB!tmboot.480.548.-2: CMDTUX_CAT:825: ERROR: Process BALC at SITE1
    failed with /T tperrno (TPERMERR - resource manager error) ...
    Can anyone help? Thanks a lot!
    Best Regards
    Lily

    I found the answer myself in an earlier post.
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by The Oracle Reports Team:
    Reports 6i will connect to Oracle8i, however you need to connect over Net8 - i.e. on the database side, you need to set up the TNS listener to accept connections, and on the Reports side (which, incidentally, needs to be installed in a separate Oracle_home) you need to configure the tnsnames.ora file to connect to the 'remote' database (since it is in a different oracle_home, to all intents and purposes it may as well be on another machine - it's all considered 'remote').
    Regards
    The Oracle Reports Team http://technet.oracle.com <HR></BLOCKQUOTE>
    null

  • Oracle error 1012 ("Not Logged On") & AUTOTRAN=Y

    Hi.
    I have a problem trying to access an Oracle 8.0.6
    database from a 6.5 Tuxedo server.
    Both TMS and server execute tpopen correctly
    All services are declared as AUTOTRAN
    Everything seems to be OK according to the logsgenerated by Oracle XA libraries
    However, I always get the Oracle error 1012 ("Not Logged On")
    when executing SQL statements from my pro*C server.
    I just can't figure out why this error occurs.
    I also tried to explicitly open a transaction from the client,
    but the result is exactly the same (tpbegin is successfull,
    however).
    Could someone help me to make this work ?
    Thanks.

    Solved by removing "DB=<db>" from my OPENINFO string, as far as this parameter
    should only be used when using proc*C "EXEC SQL ... AT <db>" statements.
    "Mathieu Chauvin" <[email protected]> wrote:
    >
    Hi.
    I have a problem trying to access an Oracle 8.0.6
    database from a 6.5 Tuxedo server.
    Both TMS and server execute tpopen correctly
    All services are declared as AUTOTRAN
    Everything seems to be OK according to the logsgenerated by Oracle XA libraries
    However, I always get the Oracle error 1012 ("Not Logged On")
    when executing SQL statements from my pro*C server.
    I just can't figure out why this error occurs.
    I also tried to explicitly open a transaction from the client,
    but the result is exactly the same (tpbegin is successfull,
    however).
    Could someone help me to make this work ?
    Thanks.

  • Running Tuxedo8.0 on oracle 8.1.6 and oracle 10.2.0.2.0 on the same machine

    Hello,
    I have oracle 8.1.6 64 bit and oracle 10.2.0.2.0 64 bit
    running on the same hp UX 11i 64-bit machine
    I have installed Tuxedo 8.0 32bit on the same machine.
    I have a working tuxedo 8.0 environment running against the 8.1.6 oracle
    database
    in the Tuxedo .../udataobj/RM file I have for the 8.1.6 environment the string
    Oracle_XA:xaosw:-L${ORACLE_HOME}/lib -lclntsh
    In oracle 8.1.6 home there are directories lib and lib64
    but in oracle 10.2.0.2.0 home there are directories
    lib and lib32
    what string should I use for the oracle 10.2.0.2.0?
    Oracle_XA:xaosw:-L${ORACLE_HOME}/lib32 -lclntsh maybe???
    Must the string in the RM file for oracle always begin with the string
    Oracle_XA?
    If so is, possible at all to run the the binaries of one Tuxedo installation
    against two different databases versions because the RM strings are similar in
    the beginning but in 8.1.6 refer to the lib directory and in 10.2.0.2.0 refer
    to the lib32 directory ?
    Or do I need to have two installations of tuxedo8.0 binaries on the machine?
    I have tried to for 10.2.0.2.0 the line (the Ora10_XA is only a try...)
    Ora10_XA:xaosw:-L${ORACLE_HOME}/lib32 -lclntsh
    in the RM file but when starting tuxedo I get:
    $ cat /mnt04/edu/ressu/bin/xa_NULL06092006.trc
    ORACLE XA: Version 10.2.0.1.0. RM name = 'Oracle_XA'.
    111035.16584.0:
    xaogetmod: XAER_INVAL; Invalid xa_info string.
    Any comments on the matter appreciated.
    rgds,
    Jyri

    Jyri,
    The information before the first colon in the $TUXDIR/udataobj/RM file is
    only used by the buildtms, buildserver, and buildclient programs to find the
    line corresponding to the value of the -r option, so it should be OK to
    specify different values for Oracle 8.1.6 and Oracle 10.2.0.2.0.
    The information specfied in the OPENINFO string in the *GROUPS section of
    the TUXCONFIG file must be of the form
    OPENINFO="ORACLE_XA:Oracle_XA+...."
    The strings ORACLE_XA and Oracle_XA cannot be changed, except for case. The
    "...." can be replaced with parameters such as
    SqlNet=NAMESesTm=100+LogDir=.+MaxCur=5 or whatever is used in your
    applicatino. The "xaogetmod: XAER_INVAL: Invalid xa_info string" error you
    are getting is due to an incorrect OPENINFO parameter.
    If you are running a 32-bit version of Tuxedo you must link with the
    ${ORACLE_HOME}/lib32 library on 10gR2; if you are using a 64-bit version of
    Tuxedo you must link with ${ORACLE_HOME}/lib library. The procedure is
    similar for Oracle 8 except that it seems that the lib directory may be the
    32-bit library in that version of Oracle.
    32-bit and 64-bit binaries cannot be mixed under a single TUXDIR, but it is
    possible to use multiple RMs or multiple versions of the same RM on the same
    machine.
    The syntax of the open string and the list of libraries to link with is
    specified in the "Oracle Database Application Developer's Guide -
    Fundamentals" in the "Developing Applications with Oracle XA" chapter.
    <Jyri Elomaa> wrote in message news:[email protected]...
    Hello,
    I have oracle 8.1.6 64 bit and oracle 10.2.0.2.0 64 bit
    running on the same hp UX 11i 64-bit machine
    I have installed Tuxedo 8.0 32bit on the same machine.
    I have a working tuxedo 8.0 environment running against the 8.1.6 oracle
    database
    in the Tuxedo .../udataobj/RM file I have for the 8.1.6 environment the
    string
    Oracle_XA:xaosw:-L${ORACLE_HOME}/lib -lclntsh
    In oracle 8.1.6 home there are directories lib and lib64
    but in oracle 10.2.0.2.0 home there are directories
    lib and lib32
    what string should I use for the oracle 10.2.0.2.0?
    Oracle_XA:xaosw:-L${ORACLE_HOME}/lib32 -lclntsh maybe???
    Must the string in the RM file for oracle always begin with the string
    Oracle_XA?
    If so is, possible at all to run the the binaries of one Tuxedo
    installation
    against two different databases versions because the RM strings are
    similar in
    the beginning but in 8.1.6 refer to the lib directory and in 10.2.0.2.0
    refer
    to the lib32 directory ?
    Or do I need to have two installations of tuxedo8.0 binaries on the
    machine?
    I have tried to for 10.2.0.2.0 the line (the Ora10_XA is only a try...)
    Ora10_XA:xaosw:-L${ORACLE_HOME}/lib32 -lclntsh
    in the RM file but when starting tuxedo I get:
    $ cat /mnt04/edu/ressu/bin/xa_NULL06092006.trc
    ORACLE XA: Version 10.2.0.1.0. RM name = 'Oracle_XA'.
    111035.16584.0:
    xaogetmod: XAER_INVAL; Invalid xa_info string.
    Any comments on the matter appreciated.
    rgds,
    Jyri

  • How start XA log in Oracle Server 8.1.7

    I'd like to activate Oracle Server XA log while using Oracle 8.1.7 oci
    driver for
    connecting to a 8.1.7 Server. The JDBC log is already active.
    Oracle Documentation states that you must add in the openinfo string of
    the TM
    de following info: DbgFl=15LogDir=/...
    Where can I put that info so weblogic instruct Server to log xa trans?
    I've seen that jdriver config has an openinfo field and it does the job,
    but I want to
    get it with Oracle driver.
    Thanks,
    Josep

    Hi Josep,
    Could you write a small standalone program that can
    activate XA log, and than post it here in the newsgroup?
    We will try to come up with ideas how to turn it on for
    WebLogic.
    Regards,
    Slava Imeshev
    "Josep Blazquez" <[email protected]> wrote in message
    news:[email protected]..
    I'd like to activate Oracle Server XA log while using Oracle 8.1.7 oci
    driver for
    connecting to a 8.1.7 Server. The JDBC log is already active.
    Oracle Documentation states that you must add in the openinfo string of
    the TM
    de following info: DbgFl=15LogDir=/...
    Where can I put that info so weblogic instruct Server to log xa trans?
    I've seen that jdriver config has an openinfo field and it does the job,
    but I want to
    get it with Oracle driver.
    Thanks,
    Josep

  • Tuxedo with Oracle-RAC

    Tuxedo -Oracle RAC ,
    We are planning to upgrade the Tuxedo Environmet to o Support Oracle-RAC , with Single Database server with Two Instances .
    ***At the moment we have ceratin Tuxedo Services ( part of a transaction ) to connect Database , which is used by more than One Application ie The connection Services to the Databse is COMMON.***
    Eg: we have service named DBSERVICE1 , which is connecting to a datbases , which also part of a Transaction , This DBSERVICE1 is used by more than one channels ( ATM/internet banking , phone banking etc )
    we have more than one service like DBSERVICE1
    With this architecture how we can effectively achieve Tuxedo -Oracle RAC High Availability.
    Is is possible to specify in the Tuxedo Configuration  like this " if the instance1 is down , use the Instance2"?+
    Thanks in Advance.
    Nadeer.
    Edited by: user10229565 on Nov 11, 2008 11:30 PM
    Edited by: user10229565 on Nov 11, 2008 11:36 PM

    Hi Nadeer,
    In Oracle RAC 10g a single global transaction that spans more than one RAC instance, yet connected to a single database will not work, i.e., you may not get transactional integrity. To solve this problem, Tuxedo introduced RAC support by way of the TUXRACGROUPS environment variable. This environment variable tells Tuxedo about the RAC configuration, i.e., which RAC instances are connected to which RAC databases. Actually it tells Tuxedo which groups of Tuxedo servers can safely participate together in a single global transaction. Using that environment variable, Tuxedo will alter its request routing algorithm so that once a transaction is started, all subsequent service requests that are part of that transaction will only be routed to servers in Tuxedo groups that can safely participate in the transaction. So if we use a simple example where there are two RAC instances R1 and R2 connected to a single database D1 and we have Tuxedo groups G1, G2, G3, and G4, where the openinfo string for G1 and G3 connect to R1 and G2 and G4 connect to R2. If a server in G1 starts a transaction, or is called by a client that has started a transaction (assuming TUXRACGROUPS has been defined properly), Tuxedo will only route all subsequent requests that are part of that transaction to servers in G1 or G3. Thus Tuxedo will prevent a transaction from ever spanning 2 or more RAC instances connected to the same database.
    Again, I encourage you to read the documentation for RAC support in Tuxedo as it gives several examples and describes in detail how to define TUXRACGROUPS.
    Also note that this entire problem essentially goes away in Oracle RAC 11g.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • How to connect Oracle database from Active Server page

    Hi
    This is srinivas aluri
    I have developed an application using ASP and MS-SQL7.
    Now i want to port this application to Oracle 8i database
    I have written my connection in seperate file called
    connection.inc using SQL OLEDB provider
    If i have to connect oracle database what will be my provider
    and what is the exact code for this connection string
    Here i am giving the code of SQL databse connection string
    strcon= Provider=SQLOLEDB.1;Persist Security Info=False;User
    ID=sa;Initial Catalog=prjdb;Data Source=servername
    i have tried by changing the provider name from SQLOLEDB.1 to
    OraOLEDB.oracle
    but i could not able connect the database.
    It is giving provider not found or not properly installed error.
    But the same code is perfectly working from Visual Basic code.

    it depends on configuration your going to choose, there are two ways--
    - Using X/Open standards, for this
    you have to make an entry of Resource manager in $TUXDIR/udataobj/RM file.
    Then in UBBConfig file in GROUPS section u have to set Openinfo.
    It also depend on which database you are going to use.
    In your service now you need to call tpopen() API from tpsvrinit() function.
    - Other possibility is, take an implicit connection using Pro*C or Pro*Cobol whatever platform you are using.
    EXEC SQL Connect ...

  • How to connect oracle database from tuxedo

    Hi,
    How to connect oracle database from tuxedo.
    If any one can help me.
    Regards,

    it depends on configuration your going to choose, there are two ways--
    - Using X/Open standards, for this
    you have to make an entry of Resource manager in $TUXDIR/udataobj/RM file.
    Then in UBBConfig file in GROUPS section u have to set Openinfo.
    It also depend on which database you are going to use.
    In your service now you need to call tpopen() API from tpsvrinit() function.
    - Other possibility is, take an implicit connection using Pro*C or Pro*Cobol whatever platform you are using.
    EXEC SQL Connect ...

  • Tuxedo XA connect to oracle 10g Failed

    env:
    SUSE 10 entriprise server
    tuxedo 9.1 no patch
    oracle 10.2.0 for linux(I dont know 32 or 64 bit)
    tuxedo\udataobj\RM:Oracle_XA:xaosw:-L${ORACLE_HOME}/lib ${ORACLE_HOME}/precomp/lib/cobsqlintf.o -lclntsh
    buildtms -o TMS_ORA10g -r Oracle_xa
    ubb OPENINFO="ORACLE_XA:Oracle_XA+Acc=P/lbas/lbas11+sqlNet=lbas+SesTm=100+LogDir=.+MaxCur=5"
    TMSNAME="TMS_ORA10g" TMSCOUNT=2
    buildtms success,but tmboot say TMS_ORA10g assume started.
    sqlplus lbas/lbas11@lbas no problem
    question:why tmboot Ora10g proc failed,how to check?

    Please try posting this in the Tuxedo forum:
    Tuxedo

  • Oracle Resource Manager

    hi,
    In the GROUP section of the ubb file I have defined a Oracle Resource Manager.
    GRP1
    LMID = SITE1 GRPNO =1
    TMSNAME = TMS_ORA TMSCOUNT = 2
    OPENINFO = "Oracle_XA:Oracle_XA+Acc=P/usr1/usr1+SesTm=0+LogDir=/tmp/xa_logs+Objects=T+Loose_Coupling=false+SesWt=60"
    when i boot the application, the TMS_ORA gets booted.
    Now if I change just the login information to another valid user (say usr2/usr2)of
    the database in the OPENINFO parameter and try to boot the TMS_ORA fails.
    Can you please let me know as to what can be the possible reason behind this.
    Thanks

    Hi,
    If you are using ORACLE Version 7.X,
    You should grant the SELECT privilege of v$xatrans$ to usr2.
    The checking is like the following.
    1. sqlplus usr2/usr2
    2. desc v$xatrans$
    Here, If the desc command's result gets a error, then the privilege is
    not granted to usr2.
    info) v$xatrans$ view table owner is sys, therefore you should login sys
    using sqlplus
    and then "grant select on v$xatrans$ to usr2" statement is
    executed in sqlplus prompt.
    3. reboot TMS.
    If you are using ORACLE Version 8.X,
    Maybe, You should grant the SELECT privilege of DBA_PENDING_TRANSACTIONS
    view table to usr2.
    The checking is like the following.
    1. sqlplus usr2/usr2
    2. desc dba_pending_transactions
    Here, If the desc command's result gets a error, then the privilege is
    not granted to usr2.
    info) DBA_PENDING_TRANSACTIONS view table owner is sys, therefore you
    should login sys using sqlplus
    and then "grant select on dba_pending_transactions to usr2"
    statement is executed in sqlplus prompt.
    3. reboot TMS.
    This hopes help.
    Thanks.
    "vipul" <[email protected]> wrote in message
    news:[email protected]..
    >
    hi,
    In the GROUP section of the ubb file I have defined a Oracle ResourceManager.
    >
    GRP1
    LMID = SITE1 GRPNO =1
    TMSNAME = TMS_ORA TMSCOUNT = 2
    OPENINFO ="Oracle_XA:Oracle_XA+Acc=P/usr1/usr1+SesTm=0+LogDir=/tmp/xa_logs+Objects=T+L
    oose_Coupling=false+SesWt=60"
    >
    >
    when i boot the application, the TMS_ORA gets booted.
    Now if I change just the login information to another valid user (sayusr2/usr2)of
    the database in the OPENINFO parameter and try to boot the TMS_ORA fails.
    Can you please let me know as to what can be the possible reason behindthis.
    >
    Thanks

  • Reference for writing COBOL prog with DB2 with ATMI calls for Oracle Tuxedo

    Hi..
    Am using IBM COBOL for AIX 2.0.0 on Oracle Tuxedo10g R3..
    And for database IBM DB2 Version 8.2..
    I have to write a program in Cobol with queries and with ATMI calls for Tuxedo..
    I need some reference manuals for this or some sample program..
    I also need the connectivity from cobol-DB2 to Tuxedo..
    Can anyone send me link for the same?
    The tutorial CSIMPAPP and STOCKAPP was really helpful..
    Am searching for the similar kind..
    Thanks in advance..
    Edited by: user8103349 on Mar 19, 2009 8:43 PM

    Hi,
    Hopefully someone has some DB2 COBOL code to share. But in any case, using Tuxedo with COBOL and DB2 should be very similar to simply writing normal DB2 COBOL programs. The major difference is that Tuxedo will take care of making the connection to the database and should normally be allowed to perform all transaction management.
    From a configuration standpoint you'll need to add the appropriate line in the Tuxedo RM file that lists how Tuxedo needs to link DB2 XA libraries into the application. The connection information is provided in the OPENINFO string passed along to the TMS that you need to build for DB2 with the buildtms command, and finally you'll need to build your servers with the -r switch to tell Tuxedo which XA libraries need to be linked into the application.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • OPENINFO and SesTm (session time limit)

    Hi All
    And thanks in advance.
    We don't quite understand SesTm and it's behavior. (We have spent lots of time reading about it and still)
    We have SesTm=60 (and transaction timeout set to 5 min) how come a call to the database last 10 min and only then return with "ORA-02049" ?
    * "ORA-02049: timeout: distributed transaction waiting for lock"
    1) Why the query didn't return after 60 sec with an error as SesTm=60 instructs ?
    *May be we don't understand SesTm. (please advice)
    2) Why the query didn't return after 5 min as the transaction timeout instructs ? (TMQFORWORD -t 300)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    EXTRA INFORMATION (OPTIONAL) documentation of SesTm
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The SesTm definition:
    " SesTm=session_time_limit
    Specifies the maximum number of seconds allowed in a transaction between one service and the next, or between a service and the commit or rollback of the transaction, before the system aborts the transaction. For example, SesTM=15 indicates that the session idle time limit is 15 seconds.
    For example, if the TPM uses remote procedure calls between the client and the servers, then SesTM applies to the time between the completion of one RPC and the initiation of the next RPC, or the tx_commit, or the tx_rollback.
    The value of 0 indicates no limit. Entering a value of 0 is strongly discouraged. It might tie up resources for a long time if something goes wrong. Also, if a child process has SesTM=0, then the SesTM setting is not effective after the parent process is terminated ."
    You can read more about OPENINFO here:
    http://download-east.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_xa.htm#i1006488
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Regards
    TechSgin
    Edited by: TechSgin on May 6, 2010 2:09 PM
    Edited by: TechSgin on May 6, 2010 2:42 PM

    Hi,
    timeouts can be tricky (see other threads in this forum for some elaborations on timeouts).
    To be brief, always set SesTm to a higher value than your transaction timeout. Rationale: You'll want Tuxedo to take action first, not Oracle ("behind Tuxedo's back"). If Tuxedo takes action first, the transaction will be managed more predictably if more data sources are involved.
    Now it gets even more complicated. The transaction timeout value does not really specify how long something is really going to last, only how long time we're ready to wait for it until we give up. The -t 300 parameter to TMQFORWARD really means that the transaction will be forced to be rolled back unless it completes in (some) 300 seconds (it's really 300 seconds + BLOCKTIME - 1 that gives the maximum time due to rounding issues).
    Just because the client (TMQFORWARD in this case) gives up waiting for a reply, the server won't necessary give up trying to produce it. In fact, it will continue to try as hard as possible to finally deliver a result. Any DML operation after the transaction timeout will most probably fail, but the server might try a lot of them (and the one causing the timeout will generally have to complete first).
    If you really want to terminate long-running transactions in the server you need to specify a SVCTIMEOUT for the service(s) in question. In this case, Tuxedo will kill (using SIGINT and/or SIGKILL) any process running a service that takes too long time. In this case you better configure the server (the potential "killee") with RESTART=Y and MAXGEN=x.
    Hope this helps,
    /Per

  • Tpforward tpabort causing rollback to oracle database ?

    Hello all,
    we have issue with xa transactions.
    We obtained tpabort / rollback as you can see from the trace.
    We are trying to send messges from queue using tpforward to databse using oci - through "ods" adapter.
    This issue is obtained sometimes, after the restart of adapter to the database.
    I do not know, if the error is because of DB rollback or because of tpabort as you can see from trace:
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: { tpabort(0x0)
    interesting is also xa_end = 104 after tpabort.
    The queue is mostly 99% working well, what can be the origin of the problem please? Why is tmqforward behaving like this?
    Queue contains just 64 messages which can't be commited. They were sent to db adapter (ods) and to Oracle DB and we obtained answer message from DB, but the rollback/tpabort puts the message back to the queue and this is repeating indefinitely...
    tuxedo 9.1 rp 92, parsic 32b on itanium (emul)
    ubb:
    Q_ODS3 LMID=TuxC     GRPNO=313 TMSCOUNT=5     TMSNAME=TMS_QM          OPENINFO="TUXEDO/QM:/home/tux-st1/queues/QUEMSG_ODS:QSPACEMSG_ODS"
    DEFAULT:     MIN=1     MAX=8 SEQUENCE=133
    TMQUEUE                    SRVID=10040     SRVGRP=Q_ODS3     CLOPT="-o logs/stdout -e logs/stderr -s QSPACEMSG_ODS:TMQUEUE -s QSPACEMSG_ODS3:TMQUEUE -- "
    TMQFORWARD     MIN=3     MAX=20     SRVID=10050     SRVGRP=Q_ODS3     CLOPT="-o logs/stdout -e logs/stderr -- -i 2 -q DISPATCHER_ODS"
    TMQFORWARD     MIN=2     MAX=10     SRVID=10070     SRVGRP=Q_ODS3     CLOPT="-o logs/stdout -e logs/stderr -- -i 10 -q CONFIRMATION"
    script for creating queue:
    qcreateMSG.sh 44 _ODS:
    #!/bin/sh
    # Version: $Id: qcreateMSG.sh 1398 2010-04-15 08:35:37Z vkoutny $
    IPCKEY=$1`id -u`
    echo IPCKEY = $IPCKEY
    export QMCONFIG=$APPDIR/queues/QUEMSG$2
    qmadmin $QMCONFIG << END1
    echo
    qspds -f -y QSPACEMSG$2
    q
    END1
    rm $QMCONFIG
    qmadmin $QMCONFIG << END
    echo
    crdl $QMCONFIG 0 60100
    qspacecreate
    QSPACEMSG$2
    $IPCKEY
    60000
    10
    400
    400
    30000
    ERRORQ
    y
    16
    qopen QSPACEMSG$2
    qcreate
    DISPATCHER$2
    priority,time,fifo
    msgid
    0
    0
    33%
    5%
    sh $APPDIR/scripts/qfull.sh 24 QSPACEMSG$2 $QMCONFIG DISPATCHER$2
    qcreate
    CONFIRMATION
    priority,time,fifo
    msgid
    0
    0
    33%
    5%
    sh $APPDIR/scripts/qfull.sh 24 QSPACEMSG$2 $QMCONFIG CONFIRMATION
    qcreate
    ERRORQ
    priority,time,fifo
    msgid
    5
    10
    33%
    5%
    sh $APPDIR/scripts/qfull.sh 24 QSPACEMSG$2 $QMCONFIG ERRORQ
    q
    END
    thank you for any advice,
    Jan
    tuxedo trace:
    tux-st1@tuxcst:/home/tux-st1/logs$ grep "gtrid x20002 x4f6201d3 x10ab57e" ULOG.033012
    120446.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: { xa_start(0x40024d5c, 0, 0x0)
    120446.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: } xa_start = 0
    120446.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: } tpbegin = 1
    120446.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: { tpsprio(50, 0x40)
    120446.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: } tpsprio = 1
    120446.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: { xa_end(0x40024d5c, 0, 0x2000000)
    120446.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: } xa_end = 0
    120446.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: { tpservice({"DISPATCHER_ODS", 0x10, 0x40104b70, 1828, 0, -2147483648, {0, -2, -1}})
    120446.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: { tpgprio()
    120446.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: } tpgprio = 50
    120446.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: { tpalloc("STRING", "", 506)
    120446.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: } tpalloc = 0x40093b40
    120446.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: { tpalloc("STRING", "", 506)
    120446.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: } tpalloc = 0x40093fb8
    120446.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: { tpsprio(50, 0x40)
    120446.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: } tpsprio = 1
    120446.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: { tpcall("ENTRYODS", 0x40093b40, 506, 0x7f7f1208, 0x7f7f1084, 0x3)
    120446.tuxc!ods.29438.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: { xa_start(0x400356f4, 0, 0x0)
    120446.tuxc!ods.29438.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: } xa_start = 0
    120446.tuxc!ods.29438.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:tr: dye
    120446.tuxc!ods.29438.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: { tpservice({"ENTRYODS", 0x10, 0x4027ad70, 507, 0, -2147483648, {0, -2, -1}})
    120446.tuxc!ods.29438.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: { tpgetlev()
    120446.tuxc!ods.29438.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: } tpgetlev = 1
    120447.tuxc!ods.29438.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: { tpalloc("CARRAY", "", 236)
    120447.tuxc!ods.29438.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: } tpalloc = 0x4006e348
    120447.tuxc!ods.29438.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: { tpreturn(2, 0, 0x4006e348, 235, 0x0)
    120447.tuxc!ods.29438.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: { xa_end(0x400356f4, 0, 0x4000000)
    120447.tuxc!ods.29438.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: } xa_end = 0
    120447.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: } tpcall = 0
    120447.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: { tpacall("FILEWRITER", 0x40104b70, 0, 0xe)
    120447.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: } tpacall = 0 [CLIENTID {0, -2, -1}]
    120447.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: { tpfree(0x40104b70)
    120447.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: } tpfree
    120447.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: { tpfree(0x40093b40)
    120447.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: } tpfree
    120447.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: { tpfree(0x400f69c8)
    120447.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: } tpfree
    120447.tuxc!dispatcher.9870.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:at: { tpreturn(2, 0, 0x00000000, 0, 0x0)
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: { xa_start(0x40024d5c, 0, 0x8000000)
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: } xa_start = 0
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: { tpabort(0x0)
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: { xa_end(0x40024d5c, 0, 0x20000000)
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: } xa_end = 104
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: { tpalloc("rpcrqst", "", 0)
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: } tpalloc = 0x4008d5e0
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: { tpsprio(75, 0x40)
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: } tpsprio = 1
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: { tpfree(0x4008d5e0)
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: } tpfree
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: { tpalloc("rpcrqst", "", 0)
    120447.tuxc!TMS_QM.28617.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:tr: dye
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: } tpalloc = 0x4008d5e0
    120447.tuxc!TMS_QM.28617.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: { tpservice({"..TMS", 0x14, 0x00000000, 0, 0, -2147483648, {0, -2, -1}})
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: { tpsprio(75, 0x40)
    120447.tuxc!TMS_QM.28617.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: { xa_rollback(0x4002539c, 0, 0x0)
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: } tpsprio = 1
    120447.tuxc!TMS_QM.28617.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: } xa_rollback = -4
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: { tpfree(0x4008d5e0)
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: } tpfree
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: { tpalloc("rpcrqst", "", 0)
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: } tpalloc = 0x4008d5e0
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: { tpsprio(75, 0x40)
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: } tpsprio = 1
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: { tpfree(0x4008d5e0)
    120447.tuxc!TMQFORWARD.28638.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: } tpfree
    120447.tuxc!TMS_ORACLE10g.29337.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:tr: dye
    120447.tuxc!TMS_ORACLE10g.29337.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:ia: { tpservice({"..TMS", 0x14, 0x00000000, 0, 0, -2147483648, {0, -2, -1}})
    120447.tuxc!TMS_ORACLE10g.29337.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: { xa_rollback(0x40025734, 0, 0x0)
    120447.tuxc!TMS_ORACLE10g.29337.1.0: gtrid x20002 x4f6201d3 x10ab57e: TRACE:xa: } xa_rollback = 0
    XA-log-trace:
    120446.29438.0:
    xaostart: xid=0x28-7475786300000000000000000000000000000000000000000000000000000000000ebf224f6201d3010ab57e-0000013900000081, rmid=0, flags=0x0
    120446.29438.0:
    OCITransStart: Attempting
    120446.29438.0:
    OCITransStart: Succeeded
    120446.29438.0:
    xaostart: return XA_OK
    120447.29438.0:
    xaoend: xid=0x28-7475786300000000000000000000000000000000000000000000000000000000000ebf224f6201d3010ab57e-0000013900000081, rmid=0, flags=0x4000000
    120447.29438.0:
    OCITransDetach: Attempting
    120447.29438.0:
    OCITransDetach: Succeeded
    120447.29438.0:
    xaoend: return 0
    120447.29337.0:
    xaorollback: xid=0x28-7475786300000000000000000000000000000000000000000000000000000000000ebf224f6201d3010ab57e-0000013900000081, rmid=0, flags=0x0
    120447.29337.0:
    OCITransRollback: Attempting
    120447.29337.0:
    OCITransRollback: Succeeded
    120447.29337.0:
    xaorollback: rtn 0

    Hi Todd,
    first of all - thank you for your answer.
    I have found the reason.
    I just defined non existing replyqueue in tpenqueue's TPQCTL structure.
         stCtrl.flags |= TPQREPLYQ;
         strcpy(stCtrl.replyqueue, pcReplyQueueName);
    This behaviour was very hidden for me, because I did not receive any error message to logs.
    If the reply queue which I defined in structure not exists in quespace, then the abort is called internally...
    Now resolved.
    Thank you,
    Jan

  • Tuxedo impacting lcount in oracle user$ table on wrong login

    On every wrong login to 2-tier application, lcount in user$ table in oracle is updated by 2. If I use 3-tier application using Tuxedo then lcount is increased by 2 more than it was in 2-tier.
    Can anyone help me in understanding the behavior of Tuxedo with respect to updation of lcount in user$ table? How does Tuxedo processing impacts lcount of user$ table? Or do I need to check my application code, which might be guiding this behavior?

    Hi,
    Tuxedo doesn't directly affect any database tables. In fact, Tuxedo doesn't know what a database or database table is!
    What may be happening is if you are using XA transactions and you have an error in the OPENINFO string, when a Tuxedo server tries to participate in an XA transaction with the database, it makes XA calls to the database with the OPENINFO string. Those calls are done in addition to any database calls the Tuxedo server application code does. Does your application use XA transactions, i.e., do you have an OPENINFO string associated with the group of Tuxedo servers and the appropriate TMS built for the resource manager?
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • Oracle use example

    Hi!
    I make all what needed to connect to Oracle from Tuxedo. (i can see in oracle this
    connections)
    Now i want do something with this connects.
    I try to change simpapp, but can't find some example or document about how do that.
    I write:
    #include <sqlcode.h>          /* TUXEDO */
    #include <sqlca.h>
    #include <sqlda.h>
    #include <oxa.h>
    extern "C"
    #endif
    void
    #if defined(__STDC__) || defined(__cplusplus)
    GETDATA(TPSVCINFO *rqst)
    #else
    GETDATA(rqst)
    TPSVCINFO *rqst;
    #endif
         int i;
    tx_begin();
         for(i = 0; i < rqst->len-1; i++)
              rqst->data[i] = tolower(rqst->data);
    EXEC SQL INSERT INTO emp (deptno) VALUES ('dddd');
    tx_commit(); /*Commit the transaction*/
    tx_close(); /*Close transaction*/
         /* Return the transformed buffer to the requestor. */
         tpreturn(TPSUCCESS, 0, rqst->data, 0L, 0);
    , but here error
    /export/home/tuxedo/apps/simpapp>compile
    BS-1e97.c:
    simpserv.c:
    "simpserv.c", line 117: undefined symbol: EXEC
    "simpserv.c", line 117: syntax error before or at: SQL
    cc: acomp failed for simpserv.c
    CMDTUX_CAT:1832: ERROR: can't execute cc -I$TUXDIR/include -o simpserv BS-1e97.c
    -L${TUXDIR}/lib simpserv.c -ltux -lbuft -ltux2 -lfml -lfml32 -lgp -lnsl -lsocket
    Q
    1) what header file i need to use to make some EXEC calls?
    2) maybe there is some additional task to put oracle and tuxedo together?
    3) maybe i need compile in other whay my simpapp server code?
    4) maybe in internet have some nice example or docs on this thing?
    Signis.

    It isn't good practice to use a Tuxedo global transaction around a
    single update like this. You should simply code your Oracle code as if
    it were a standalone application, using COMMIT WORK to complete the
    transaction. Tuxedo and Oracle will not know anything about one another,
    and will get along much better this way. Remove any references to the
    TMS_ORA, the OPENINFO, and any tx calls from your application.
    You'll need to CONNECT to Oracle from your tpsvrinit, since Tuxedo won't
    be doing it for you.
    Make sure that you rename the sql*.h files in Tuxedo's include
    directory, as they can get included by mistake when building an Oracle
    program.
    Once you get an Oracle service working, you can move on to using Tuxedo
    transactions, but only if you really need them. If you can't answer the
    question, "Why do I need Tuxedo transactions?" then you probably don't
    need them.
         Scott Orshan
    Signis Vavere wrote:
    >
    Hi!
    I make all what needed to connect to Oracle from Tuxedo. (i can see in oracle this
    connections)
    Now i want do something with this connects.
    I try to change simpapp, but can't find some example or document about how do that.
    I write:
    #include <sqlcode.h> /* TUXEDO */
    #include <sqlca.h>
    #include <sqlda.h>
    #include <oxa.h>
    extern "C"
    #endif
    void
    #if defined(__STDC__) || defined(__cplusplus)
    GETDATA(TPSVCINFO *rqst)
    #else
    GETDATA(rqst)
    TPSVCINFO *rqst;
    #endif
    int i;
    tx_begin();
    for(i = 0; i < rqst->len-1; i++)
    rqst->data[i] = tolower(rqst->data);
    EXEC SQL INSERT INTO emp (deptno) VALUES ('dddd');
    tx_commit(); /*Commit the transaction*/
    tx_close(); /*Close transaction*/
    /* Return the transformed buffer to the requestor. */
    tpreturn(TPSUCCESS, 0, rqst->data, 0L, 0);
    , but here error
    /export/home/tuxedo/apps/simpapp>compile
    BS-1e97.c:
    simpserv.c:
    "simpserv.c", line 117: undefined symbol: EXEC
    "simpserv.c", line 117: syntax error before or at: SQL
    cc: acomp failed for simpserv.c
    CMDTUX_CAT:1832: ERROR: can't execute cc -I$TUXDIR/include -o simpserv BS-1e97.c
    -L${TUXDIR}/lib simpserv.c -ltux -lbuft -ltux2 -lfml -lfml32 -lgp -lnsl -lsocket
    Q
    1) what header file i need to use to make some EXEC calls?
    2) maybe there is some additional task to put oracle and tuxedo together?
    3) maybe i need compile in other whay my simpapp server code?
    4) maybe in internet have some nice example or docs on this thing?
    Signis.

Maybe you are looking for