Tuxedo service start

Hi
I have a Tuxedo COBOL service and I have a problem: the TPSVCSTART routine it seams that not working very well.
When I start the service for the first time and I send some record to the TPSVCSTART service routine, everything goes fine. After the COBOL service is terminated (COPY TPRETURN...) and I try to connect to the service again, the VIEW record passed to the TPSVCSTART routine contains the data that I sent but contains also random chars in his string fields, although the record's string value fields and their lengths are correctly set on the client side.
Anyone knows why this is happening?
Code for the TPSVCSTART routine:
DO-TPSVCSTART.
INITIALIZE ClientData
MOVE "VIEW" TO REC-TYPE OF TPTYPE-REC.
MOVE "ClientData" TO SUB-TYPE OF TPTYPE-REC.
MOVE LENGTH OF CLIENT-DATA-REC TO LEN IN TPTYPE-REC.
CALL "TPSVCSTART" USING TPSVCDEF-REC
TPTYPE-REC
CLIENT-DATA-REC
TPSTATUS-REC.
IF TPTRUNCATE
MOVE "Input data exceeded DATA-REC length"
TO LOGMSG-TEXT
PERFORM DO-USERLOG
PERFORM EZ-EXIT.
IF NOT TPOK
MOVE "TPSVCSTART Failed" TO LOGMSG-TEXT
PERFORM DO-USERLOG
PERFORM EZ-EXIT.
IF REC-TYPE NOT = "VIEW"
MOVE "REC-TYPE is not VIEW" TO LOGMSG-TEXT
PERFORM DO-USERLOG
PERFORM EZ-EXIT.
Thanx
Daniel

Run the server manually using the command line from "tmboot -n -d1" and
see if it is dumping core or failing in some other manner.
Or if you already have a core file, get a stack trace with a debugger.
Paul van Rixel wrote:
Hi,
With version Tuxedo 6.4 I have a fmldef.fml with 472 entries. The number of views
is 121. So when I tried to add a service the tuxedo services will not start and
returns with an "CMDTUX_CAT:819 INFO: Process Id=.... assumed started (pipe)".
However, when I delete this service (or another one) the tmboot process does not
return an error and works fine.
So I wondered if there might be (default) value which I exceed. Anyone an idea?
Regards,
Paul

Similar Messages

  • CMDTUX_CAT:1113  Previleges to start tuxedo services ( Tuxedo 6.5)

    I installed Tuxedo 6.5 on my windows NT w/s as workstation administrator. Now, I logged
    in as a network user ( who is not in the admin group) and tried to bring up Tuxedo
    services, I encountered the following error.
    CMDTUX_CAT:1113: ERROR: Must be the administrator to execute this command
    Any suggestions.
    Many thanks

    Hi,
    The user must be the system administrator (or root) to issue tmboot/tmshutdown commands.
    Check your user privileges.
    Revital
    "ravi" <[email protected]> wrote:
    >
    I installed Tuxedo 6.5 on my windows NT w/s as workstation administrator.
    Now, I logged
    in as a network user ( who is not in the admin group) and tried to bring
    up Tuxedo
    services, I encountered the following error.
    CMDTUX_CAT:1113: ERROR: Must be the administrator to execute this command
    Any suggestions.
    Many thanks

  • Passing data from jsp/servlet to a Tuxedo Service thru VIEW

    Hi..
    We are using Tuxedo10g R3 on AIX 5.3..
    We have a Tuxedo Service running which takes values from the VIEW and converts that to upper case.. From the jsp page v r passing values to the VIEW fields which will be accepted by the service..
    For testing v checked the service with a tuxedo client and it is working fine..
    We have defined a jolt repository file for this service and finished bulkloading and coded the servlet also.. After passing the datas from the jsp, the Tuxedo service is called and it is ended.. but in the service only blank values are passed or the datas are not passed to VIEW fields.. It is not showing any error..
    The repository file for this service:
    service=NSIMPSRV
    export=true
    inbuf=VIEW
    inview=sample
    outbuf=STRING
    param=FIRSTSTR
    type=string
    access=in
    param=SECONDSTR
    type=string
    access=in
    param=THIRDSTR
    type=string
    access=in
    param=S-FIRST
    type=string
    access=out
    param=S-SECOND
    type=string
    access=out
    param=S-THIRD
    type=string
    access=out
    and the servlet code for this service:
    Result result1;
    ServletSessionPool servletsession = (ServletSessionPool) joltsession.getSessionPool("demojoltpool");
    ServletDataSet joltdataset = new ServletDataSet();
    joltdataset.setValue("FIRSTSTR","Testing");
    joltdataset.setValue("SECONDSTR","Tuxedo");
    joltdataset.setValue("THIRDSTR","Views");
    result1 = servletsession.call("NSIMPSRV", joltdataset, null);
    System.out.println("FIRSTSTR:"+result1.getValue("S-FIRST",""));
    System.out.println("SECONDSTR:"+result1.getValue("S-SECOND",""));
    System.out.println("THIRDSTR:"+result1.getValue("S-THIRD",""));
    we are not sure why the datas have not been passed.. do anyone have any idea regarding this??
    Thanks..

    Hi Wayne,
    This is my view definition:
    VIEW sample
    # type cname fbna count flag size null
    string firststr - 1 - 10 -
    string secondstr - 1 - 10 -
    string thirdstr - 1 - 10 -
    ENDJolt repository file:
    service=NSIMPSRV
    export=true
    inbuf=VIEW
    inview=sample
    outbuf=VIEW
    outview=sample
    param=FIRSTSTR
    type=string
    access=inout
    param=SECONDSTR
    type=string
    access=inout
    param=THIRDSTR
    type=string
    access=inoutThe Servlet code is:
    package Servlet;
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import bea.jolt.pool.servlet.weblogic.PoolManagerStartUp;
    import bea.jolt.pool.servlet.*;
    import bea.jolt.pool.ApplicationException;
    import bea.jolt.pool.SessionPoolException;
    import bea.jolt.pool.ServiceException;
    import bea.jolt.pool.SessionPoolManager;
    import bea.jolt.pool.*;
    * Servlet implementation class ZC00582Servlet
    public class VIEWServlet extends HttpServlet {
         private ServletSessionPoolManager joltsession = (ServletSessionPoolManager) SessionPoolManager.poolmgr;
    public VIEWServlet() {
    super();
    // TODO Auto-generated constructor stub
         protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              // TODO Auto-generated method stub
         response.setContentType("text/html");
         ServletResult result;
         Result result1;     
         String String1 = request.getParameter("FIRSTSTR");
         String String2 = request.getParameter("SECONDSTR");
         String String3 = request.getParameter("THIRDSTR");
         System.out.println("THE VALUES BEFORE CONVERSION");
         System.out.println("FIRSTSTR:"+String1);
         System.out.println("SECONDSTR:"+String2);
         System.out.println("THIRDSTR:"+String3);
         System.out.println("1..");     
         //ServletResult message;
         ServletSessionPool servletsession = (ServletSessionPool) joltsession.getSessionPool("demojoltpool");
         System.out.println("2..");
         ServletDataSet joltdataset = new ServletDataSet();
         //joltdataset.importRequest(request);
         System.out.println("3..");
         //joltdataset.setValue("firststr","Hi");
         joltdataset.setValue("firststr",String1);
         System.out.println("4..");
         //joltdataset.setValue("secondstr","hello");
         joltdataset.setValue("secondstr",String2);
         System.out.println("5..");
         //joltdataset.setValue("thridstr","fine");
         joltdataset.setValue("thirdstr",String3);
         System.out.println("6..");
         //result = (ServletResult) servletsession.call("NSIMPSRV", joltdataset, null);
         result1 = servletsession.call("NSIMPSRV", joltdataset, null);
         result = (ServletResult) result1;
         System.out.println("THE VALUES AFTER CONVERSION");
         System.out.println("FIRSTSTR:"+result.getStringValue("firststr",""));
         System.out.println("SECONDSTR:"+result.getStringValue("secondstr",""));
         System.out.println("THIRDSTR:"+result.getStringValue("thirdstr",""));     
         protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              // TODO Auto-generated method stub
    and my server program :
    IDENTIFICATION DIVISION.
    PROGRAM-ID. NSIMPSRV.
    AUTHOR. TUXEDO DEVELOPMENT.
    ENVIRONMENT DIVISION.
    CONFIGURATION SECTION.
    DATA DIVISION.
    WORKING-STORAGE SECTION.
    * Tuxedo definitions
    01 TPSVCRET-REC.
    COPY TPSVCRET.
    01 TPTYPE-REC.
    COPY TPTYPE.
    01 TPSTATUS-REC.
    COPY TPSTATUS.
    01 TPSVCDEF-REC.
    COPY TPSVCDEF.
    * Log message definitions
    01 LOGMSG.
    05 FILLER PIC X(10) VALUE
    "NSIMPSRV :".
    05 LOGMSG-TEXT PIC X(50).
    01 LOGMSG-LEN PIC S9(9) COMP-5.
    * User defined data records
    01 STRING-DATA.
    COPY SAMPLE.
    LINKAGE SECTION.
    PROCEDURE DIVISION.
    START-FUNDUPSR.
    MOVE LENGTH OF LOGMSG TO LOGMSG-LEN.
    MOVE "Started" TO LOGMSG-TEXT.
    PERFORM DO-USERLOG.
    * Get the data that was sent by the client
    MOVE LENGTH OF STRING-DATA TO LEN.
    CALL "TPSVCSTART" USING TPSVCDEF-REC
    TPTYPE-REC
    STRING-DATA
    TPSTATUS-REC.
    IF NOT TPOK
    MOVE "TPSVCSTART Failed" TO LOGMSG-TEXT
    PERFORM DO-USERLOG
    PERFORM EXIT-PROGRAM
    END-IF.
    IF TPTRUNCATE
    MOVE "Data was truncated" TO LOGMSG-TEXT
    PERFORM DO-USERLOG
    PERFORM EXIT-PROGRAM
    END-IF.
    MOVE FIRSTSTR TO LOGMSG-TEXT.
    PERFORM DO-USERLOG.
    MOVE SECONDSTR TO LOGMSG-TEXT.
    PERFORM DO-USERLOG.
    MOVE THIRDSTR TO LOGMSG-TEXT.
    PERFORM DO-USERLOG.
    INSPECT FIRSTSTR CONVERTING
    "abcdefghijklmnopqrstuvwxyz" TO
    "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
    INSPECT SECONDSTR CONVERTING
    "abcdefghijklmnopqrstuvwxyz" TO
    "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
    INSPECT THIRDSTR CONVERTING
    "abcdefghijklmnopqrstuvwxyz" TO
    "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
    MOVE "Success" TO LOGMSG-TEXT.
    PERFORM DO-USERLOG.
    MOVE STRING-DATA TO LOGMSG-TEXT.
    PERFORM DO-USERLOG.
    SET TPSUCCESS TO TRUE.
    COPY TPRETURN REPLACING
    DATA-REC BY STRING-DATA.
    * Write out a log err messages
    DO-USERLOG.
    CALL "USERLOG" USING LOGMSG
    LOGMSG-LEN
    TPSTATUS-REC.
    * EXIT PROGRAM
    EXIT-PROGRAM.
    MOVE "Failed" TO LOGMSG-TEXT.
    PERFORM DO-USERLOG.
    SET TPFAIL TO TRUE.
    COPY TPRETURN REPLACING
    DATA-REC BY STRING-DATA.
    Thanks & Regards,
    Janani.

  • Debugging  of Tuxedo Service in C/C++

    Hi All,
    I am trying to debug tuxedo service (C code on HP-UNIX 11.00) in the following ways :
    shprod25 48: gdb csbfp001 -> csbfp001 is the application service exe
    (gdb) b GetRecircRow -> GetRecircRow is the function name
    (gdb) r
    Starting program: /appl/bstar/bin/csbfp001
    Error while reading dynamic library list.
    (gdb)
    Looks like it is not able to read DLL and it exists. Can anyone please tell me how can i debug the code line by line ?

    It's even more complex than this, because Tuxedo Services has to attach IPCS and register in the BBL/DBBL in order to communicate with the world. The problem you are facing is because you are trying to boot the server without all the variables that tuxedo programs (like tmboot) uses when starting all the stuff.
    So, I will recommend you two different aproaches:
    1) Start tuxedo server as usual (with tmboot a/o tmadmin) and attach gdb to the pid when it has started, debugging from then on. It is the easiest and safest way.
    2) If you need to debug from the start (which is a little more complex), load the environment that starts initially the domain (BBL/DBBL), start tuxedo server as usual, take note with a "ps" of all the parameters tuxedo uses when starting this server, shutdown it and start debugging with gdb using this parameters to run the server.
    Hope this helps.
    Ramon

  • Can a Tuxedo service send a message to itself?

    Hello,
    is it possible for a Tuxedo service to send a request to itself?
    The scenario is this:
    - The same Tuxedo service is provided by multiple processes (for scalability). The processes are single-threaded.
    - While handling a request in a transaction (XA transaction is started outside the process), the service code determines that some cached data needs to be refreshed. This refresh needs to be done outside the current transaction.
    - The service send an non-transactional async request to itself (the same process). [How?]
    - The transactional request completes.
    - The non-transactional request is handled and refreshes the cache.
    - The next transactional request is handled (by the same process), and uses the refreshed cache data.
    Is this possible? The challenge seems to be that the same process gets the non-transactional request. With multiple instances of the service, any instance could normally get the request (eg. when using tpacall()).
    Thanks...
    Roger

    Hi Roger,
    A couple of comments:
    1) There isn't any standard way of forcing a request to go to a specific server when the service is offered by multiple servers. The traditional way of handling the need to make a request to a specific server is to explicitly advertise the service with a synonym name that is unique to the server. So to call the BAL service in a particular server with a PID of 1433, the server would advertise the BAL server as BAL_1433 or something similar, and then any requests that had to be made to that particular server would be made to BAL_1433 instead of BAL. Unfortunately this is rather cumbersome and doesn't scale particularly well. One feature we are adding to Tuxedo in an upcoming release is client server affinity. With this feature an application could specify that all requests are routed to the first server that handles a service. Thus subsequent requests that are made to services while in a "session" with the server would always be routed to that server. While this client/server affinity might be a solution in the future, it's not really designed for the scenario you mention, i.e., performing an asynchronous out of band request to the same server.
    2) In your scenario under the point where you ask "how?", you could use the above approach, although the call would have to be a tpacall with TPNOTRAN set (which you already indicated) but would also have to set TPNOREPLY as it appears you are planning on performing a tpreturn before processing the asynch request.
    3) Obviously another solution would be to make the server multi-threaded and handling the refresh of the cache in a separate thread and not use a tpcall/tpacall to initiate the cache refresh.
    4) Although not likely to be an option, the Tuxedo CORBA infrastructure will support what you are trying to do. By activating an object in a process with a process activation policy, you could make a request to that object reference and be guaranteed the request would return to that same server.
    5) Finally one other possible solution, although probably inelegant and may not scale as well would be to use data dependent routing and only have a single server offering the service in each group.
    As an aside, we are planning on adding a distributed data caching mechanism to Tuxedo in a future release. Yeah, I know that doesn't help right now, but it is certainly something to look forward to! :-)
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • Calling Tuxedo Service using BEA Jolt.

    I'm trying to call Tuxedo service from java stored procedure using BEA JOLT.My normal java client works fine but when i use the same client as java stored procedure i get following error message :
    can not connect to any //lucy:9021(host:port)
    Reason:Nwhdlr:can not open socket
    I've successfully loaded all required JOLT jar files using loadjava and created the procedure successfully .Java code is given below :
    import bea.jolt.*;
    import java.sql.*;
    public class JoltToTux
         public static void callTuxService() throws Exception
              JoltSession session;
              JoltSessionAttributes sattr;
              JoltRemoteService toupper;
              JoltTransaction trans;
              String userName=null;
              String userPassword=null;
              String appPassword=null;
              String userRole=null;
              String outstr;
              try {
              sattr = new JoltSessionAttributes();
              sattr.setString(sattr.APPADDRESS, "//lucy:9021");
              sattr.setInt(sattr.IDLETIMEOUT, 300);
              session = new JoltSession(sattr, userName, userRole,userPassword, appPassword);
                        toupper = new JoltRemoteService ("CB_EXESUB", session);
              toupper.setString("CLFY_SUB", "PingSrvr");
              toupper.call(null);
              System.out.println( "Call to Tuxedo complete" );
              outstr = toupper.getStringDef("WF_MESSAGE","" );
              System.out.println("return string : " + outstr);
                        session.endSession();
              System.exit(0);
              } //end of try
              catch (Exception e) {
                   // System.err.println(e.getMessage());}
                   e.printStackTrace();
         } // end main
         public static void main( String args[] ) {
              try {
                   JoltToTux jt = new JoltToTux();
                   jt.callTuxService();
              catch ( Exception e0 ) {
                   e0.printStackTrace();
    } // end ToUpper
    thanks
    anurag

    Ams,
    You can't do that with JOLT. You will need to use the WTC product,
    currently in beta - see WTC Questions and Answers
    Regards,
    Peter.
    Got a Question? Ask BEA at http://askbea.bea.com
    The views expressed in this posting are solely those of the author, and
    BEA
    Systems, Inc. does not endorse any of these views.
    BEA Systems, Inc. is not responsible for the accuracy or completeness of
    the
    information provided
    and assumes no duty to correct, expand upon, delete or update any of the
    information contained in this posting.
    Ams wrote:
    Hi Manoj,
    I want to call a tuxedo service and also want to update
    database (using entity beabs) in same transaction so I
    can't use AUTOTRAN , Am I right ?
    I am using bea.jolt.pool.SessionPool's startTransaction
    method to start a transaction and passing this
    to SessionPool's call method.
    Ams.
    "Manoj SASIDHARAN" <[email protected]> wrote:
    Hello Ams,
    Could u plz give more information abt the usage scenario. Another way
    to test
    would be to put AUTOTRAN=Y for the service in question.
    HTH
    regards
    MS
    "Ams" <[email protected]> wrote:
    Hi,
    I am calling Tuxedo service from ejb using jolt.
    I want the service call in transaction started in ejb.
    I am getting following error.
    LIBTUX_CAT:481: ERROR: Service xa_start returned -7
    Does jolt support transaction ?
    Ams
    [att1.html]

  • Unable to resolve 'tuxedo.services.TuxedoConnection'

    Hi
    I've just installed BEA Weblogic 7.0. I am currently using the examples server.
    I have attempted to set up the WTC, but I am getting the following error:
    Beginning statefulSession.Client...
    Creating Toupper
    converting allcaps
    *** here ***
    tperrno encountered: TPENOENT(6):0:0:TPED_MINVAL(0):QMNONE(0):0:Could not get
    Tu
    xedoConnectionFactory : javax.naming.NameNotFoundException: Unable to resolve
    't
    uxedo.services.TuxedoConnection' Resolved: 'tuxedo.services' Unresolved:'TuxedoC
    onnection' ; remaining name 'TuxedoConnection'
    Start server side stack trace:
    TPENOENT(6):0:0:TPED_MINVAL(0):QMNONE(0):0:Could not get TuxedoConnectionFactory
    : javax.naming.NameNotFoundException: Unable to resolve 'tuxedo.services.Tuxedo
    Connection' Resolved: 'tuxedo.services' Unresolved:'TuxedoConnection' ; remainin
    g name 'TuxedoConnection'
    at examples.wtc.atmi.simpapp.ToupperBean.Toupper(ToupperBean.java:116)
    at examples.wtc.atmi.simpapp.ToupperBean_8roqg7_EOImpl.Toupper(ToupperBe
    an_8roqg7_EOImpl.java:46)
    at examples.wtc.atmi.simpapp.ToupperBean_8roqg7_EOImpl_WLSkel.invoke(Unk
    nown Source)
    at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(Activata
    bleServerRef.java:87)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
    at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
    eManager.java:762)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
    a:308)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
    .java:30)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
    End server side stack trace
    End statefulSession.Client...
    Does anyone have any information?
    Many thanks.
    Rennay

    Hi
    The problem was that I didnt specify the "//" for the network address.
    Thanks.
    "Rennay" <[email protected]> wrote:
    >
    Hi
    I've just installed BEA Weblogic 7.0. I am currently using the examples
    server.
    I have attempted to set up the WTC, but I am getting the following error:
    Beginning statefulSession.Client...
    Creating Toupper
    converting allcaps
    *** here ***
    tperrno encountered: TPENOENT(6):0:0:TPED_MINVAL(0):QMNONE(0):0:Could
    not get
    Tu
    xedoConnectionFactory : javax.naming.NameNotFoundException: Unable to
    resolve
    't
    uxedo.services.TuxedoConnection' Resolved: 'tuxedo.services' Unresolved:'TuxedoC
    onnection' ; remaining name 'TuxedoConnection'
    Start server side stack trace:
    TPENOENT(6):0:0:TPED_MINVAL(0):QMNONE(0):0:Could not get TuxedoConnectionFactory
    : javax.naming.NameNotFoundException: Unable to resolve 'tuxedo.services.Tuxedo
    Connection' Resolved: 'tuxedo.services' Unresolved:'TuxedoConnection'
    ; remainin
    g name 'TuxedoConnection'
    at examples.wtc.atmi.simpapp.ToupperBean.Toupper(ToupperBean.java:116)
    at examples.wtc.atmi.simpapp.ToupperBean_8roqg7_EOImpl.Toupper(ToupperBe
    an_8roqg7_EOImpl.java:46)
    at examples.wtc.atmi.simpapp.ToupperBean_8roqg7_EOImpl_WLSkel.invoke(Unk
    nown Source)
    at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(Activata
    bleServerRef.java:87)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
    at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
    eManager.java:762)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
    a:308)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
    .java:30)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
    End server side stack trace
    End statefulSession.Client...
    Does anyone have any information?
    Many thanks.
    Rennay

  • Call of tuxedo workstation client to tuxedo service

    In ubb file:
    "WSL"     SRVGRP="GRP"     SRVID=44
         CLOPT="-A -- -p 10002 -n //172.17.1.10:10001 -P 10003 -T 180"
    My question is:
    1. In workstation client, WSNADDR is //172.17.1.10:10001. If I use "172.17.1.10:10001", it prompts "TPESYSTEM - internal system error", while "//172.17.1.10:10001" is right?
    2. 10001 is the port of WSL, 10002-10003 is the port of WSH. But in ubb file, I cannot find WSH configuration, is that right?
    3. If "telnet 172.17.1.10 10002(/10003)" doesn't work in workstation client, does it impact the call of tuxedo service from this workstation client?
    Thanks a lot.

    Bill,
    1. Tuxedo syntax for specifying TCP/IP addresses requires that the address start with "//", so it is expected behavior for "172.17.1.10:10001" to result in an error and for "//172.17.1.10:10001" to be correctly parsed.
    2. You're correct that the UBBCONFIG file does not include entries for WSH processes. WSH processes are started by the WSL as appropriate.
    3. The Tuxedo WSH communicates with workstation clients and with the WSL using a proprietary Tuxedo workstation protocol. The WSH does not understand telnet protocol, so any attempt to telnet to the WSH port will not succeed.
    Regards,
    Ed

  • WTC not able to infect tuxedo service.

    Hi,
    I tried to call the tuxedo service from ejb using wtc.
    But the transaction even though started successfull
    is not able to infect the tuxedo service.
    Is there any working example so that I can follow the
    same rules.
    What parameters to be set in ejb-jar.xml file.
    Thanks,
    Ams

    The rule with transactions is that you must have gotten your
    TuxedoConnection object after the thread has been infected with the
    transaction. (This is JCA style as well). Hence if you do the following:
    tm.begin()
    TuxedoConnectionFactory.getTuxedoConnection()
    you will be OK (pseudo code above...)
    However, if you do
    TuxedoConnectionFactory.getTuxedoConnection()
    tm.begin()
    Then the ATMI calls made from the getTuxedoConnection will not be part of
    the transaction.
    Hope this helps...
    John Wells (Aziz)
    [email protected]
    [email protected]
    "ams" <[email protected]> wrote in message
    news:3b6203b1$[email protected]..
    >
    >
    Hi,
    I tried to call the tuxedo service from ejb using wtc.
    But the transaction even though started successfull
    is not able to infect the tuxedo service.
    Is there any working example so that I can follow the
    same rules.
    What parameters to be set in ejb-jar.xml file.
    Thanks,
    Ams

  • Build Tuxedo service in Visual Studio

    Hi!
    I need to build the executable for a Tuxedo service. The Visual Studio project
    already contains a TuxServer.cp file which has the tpsvrinit function, and tux.c
    which was generated by BuildTuxedo. It also contains a sybesql.c file and other
    codes files. It was a legacy system, and I don't know much about Tuxedo. The machine
    I want to build it on already has Visual Studio, Sybase and Tuxedo installed.
    How do I set up the environment so I can build the exe in Visual Studio itself?
    Thanks,
    Caroline

    Hello and thank you very much for your answers
    Right now I tried RobertH's solution. I'm gona try it also with Coq rouge's link.
    To RobertH's way:
    I inserted the line __declspec(dllexport) unsigned int __stdcall multiply(unsigned char a, unsigned char b);
    and my file looked like this:
    #include "stdafx.h"  __declspec(dllexport) unsigned int __stdcall multiply(unsigned char a, unsigned char b);unsigned int multiply(unsigned char a, unsigned char b) {unsigned int c; c = a * b;return c; }
    When I tried to compile, i got an errormessage:
    error C2373: 'multiply': Neudefinition; unterschiedliche Modifizierer
    in English:
    error C2373 'multiply': redefinition; different modifier
    I could fix this error by editing the line
    unsigned int multiply(unsigned char a, unsigned char b)
    into
    unsigned int __stdcall multiply(unsigned char a, unsigned char b)
    but i have no idea if this is the correct way. Maybe this is wrong? Now i could compile.
    I also could open the function multiply in LabView. I created at the call library function node the inputs and outputs. LabView described the functionprototype as:
    uint16_t ?multiply@@YGIEE@Z(uint8_t a, uint8_t b);
    I could start the programm, but I got a LabView errormessage:
    Error 1097 occurred at Call Library Function Node in extcodetest.vi
    Possible reason(s):
    LabVIEW:  An exception occurred within the external code called by a Call Library Function Node. The exception may have corrupted LabVIEW's memory. Save any work to a new location and restart LabVIEW.
    I tried both calling conventions, c and stdcall 
    At least, i could start the LabView Programm. Thats already a littel success. But i think i will need more help.
    Now I'm also gonna try Coq rouge's link.

  • Jolt transaction towards Tuxedo services - XA required ?

    Dear Friends (Especially Todd Little),
    Sorry, but the Jolt and Tuxedo documentation is really weak (to say the least) in regard of Transaction management from Jolt.
    I would like to ask for your kind help with answering the most simple question in the world:
    I have two Tuxedo services each doing some updates on a DB. Both work against the same DB (single DB resource, no multiple DBs) and run inside the same Tuxedo instance in production.
    I would like both services to do their updates in a transactional manner when called from Jolt (with transacted SessionPool).
    Do I need these two services to run with XA resource for that, or not ?
    My natural expectation (from JEE world experience) is that both services would be assigned (by the container, in our case Tuxedo) with the same DB Connection to perform their updates, so in case the Connection is rolled back (due to failure in one service), all update (from all previous services) are rolled back.
    And, I would have expect Tuxedo to manage that, so all services called from the same transactional Jolt Session would share the same DB Connection (Just as is done with Weblogic or any other JEE server when a non XA transaction is running).
    I would not expect a need to configure (and worst, to consume in production) a XA resource for that (simple) business implementation.
    Its like buying the whole cow for a glass of milk ...
    Could you please elaborate on that ?
    Regards.

    Hi,
    When a Jolt client calls startTransaction, a Tuxedo transaction is started on the behalf of the client by the JSH. Since this transaction is not part of the client's transaction environment (JTA, etc.) we call it a delegated transaction as the transaction work is done by the JSH, yet still controlled by the Jolt client. This is fully supported and the expected behavior of both Jolt clients as well as Workstation clients. Again, the key point about delegated transactions is they are not part of any transaction the client may be participating in outside the Tuxedo environment. So a Jolt client that is running in the context of a JTA transaction calling startTransaction will be involved in two separate and distinct transactions, the JTA transaction and the Tuxedo transaction. Thus the transaction outcomes can be different, i.e., the Tuxedo transaction could commit while the JTA transaction rollsback. If you need distributed transaction support between the clients transaction manager and Tuxedo's transaction manager you will need to use WTC which supports this type of distributed transaction.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • Debugging a tuxedo service using dbx

    Hi,
    Is is possible to debug a tuxedo service using dbx by enabing the tmboot switches
    and -g option of the compiler. I am able to step into tpsvrinit during initialisation,
    but not able to do when a client calls a service. I could not step into the service
    by setting breakpoints. Please help.
    rgds,
    Dominic

    The only thing to be aware of is that while you play around in the debugger, Tuxedo
    is timing out your transaction.
    So, if you want things to keep working while you debug, setup some nice long timouts.
    ...Lyall
    "RC Bryan" <[email protected]> wrote:
    >
    I have not done this on Solaris in a while but basically, what you have
    to do is
    to build the process with -g and start it with tmboot as you would normally.
    After the process is running, you can attach by typing:
    dbx name pid
    where the name is the name of the executable and pid is the process id
    of the
    server process (obtained either with ps -ef | grep name or with verbose
    mode psr
    in tmadmin). This will break into the running process. You can then
    set your
    break points in the service routines as required. When the service is
    entered,
    control will return to your debugger session and you can debug as you
    normally
    would.
    Incidentally, I find the buildserver -k (keep) option to be useful when
    debugging
    servers. This allows you to debug through the startup code that is normally
    deleted
    as a part of the buildserver process.
    Regards,
    /RC Bryan
    "Dominic" <[email protected]> wrote:
    Hi,
    Is is possible to debug a tuxedo service using dbx by enabing the tmboot
    switches
    and -g option of the compiler. I am able to step into tpsvrinit during
    initialisation,
    but not able to do when a client calls a service. I could not step into
    the service
    by setting breakpoints. Please help.
    rgds,
    Dominic

  • Apple mobile device service started and stopped

    my iPod touch cant be synced or even recognized on my iTunes and it says i gotta *start the apple mobile device service*.
    i finally found it and it tells me that *"apple mobile device service started and stopped..."*
    how can i fix it?
    help!!!!

    Hello and Welcome to Apple Discussions. 
    Follow the instructions in this article:
    http://docs.info.apple.com/article.html?artnum=307078
    mrtotes

  • I have a problem when running my own EJB as a TUXEDO service using WTC.

    Hello,
    I have a problem when running my own EJB as a TUXEDO service using WTC. I am using TUXEDO 8.1 and WL 9.1.
    When I am trying to run my own EJB as a TUXEDO service error appears.
    TPENOENT(6):0:0:TPED_MINVAL(0):QMNONE(0):0:Could not find service TOUPPER
    at weblogic.wtc.gwt.WTCService.getImport(WTCService.java:4988)
    at weblogic.wtc.gwt.TuxedoConnection.getImport(TuxedoConnection.java:303)
    at weblogic.wtc.gwt.TuxedoConnection.tpcall(TuxedoConnection.java:1302)
    at examples.MyTestSessionBean.Toupper(MyTestSessionBean.java:102)
    at examples.TestSessionBean_knby6k_EOImpl.Toupper(TestSessionBean_knby6k_EOImpl.java:61)
    at net.roseindia.web.servlets.SessionTestServlet.doGet(SessionTestServlet.java:69)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:272)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:165)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3153)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1973)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1880)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1310)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
    e8
    10
    java.rmi.RemoteException: EJB Exception: ; nested exception is:
    java.lang.NullPointerException
    at weblogic.ejb.container.internal.EJBRuntimeUtils.throwRemoteException(EJBRuntimeUtils.java:95)
    at weblogic.ejb.container.internal.BaseEJBObject.handleSystemException(BaseEJBObject.java:713)
    at weblogic.ejb.container.internal.BaseEJBObject.handleSystemException(BaseEJBObject.java:681)
    at weblogic.ejb.container.internal.BaseEJBObject.postInvoke1(BaseEJBObject.java:447)
    at weblogic.ejb.container.internal.StatelessEJBObject.postInvoke1(StatelessEJBObject.java:72)
    at weblogic.ejb.container.internal.BaseEJBObject.postInvokeTxRetry(BaseEJBObject.java:374)
    at examples.TestSessionBean_knby6k_EOImpl.Toupper(TestSessionBean_knby6k_EOImpl.java:75)
    at net.roseindia.web.servlets.SessionTestServlet.doGet(SessionTestServlet.java:69)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:272)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:165)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3153)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1973)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1880)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1310)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
    Caused by: java.lang.NullPointerException
    at examples.MyTestSessionBean.Toupper(MyTestSessionBean.java:130)
    at examples.TestSessionBean_knby6k_EOImpl.Toupper(TestSessionBean_knby6k_EOImpl.java:61)
    ... 15 more
    Any clue on this.
    With Regards,
    MVS

    If you are trying to create a Tuxedo service in Java using WTC you need to develop an EJB that implements the TuxedoService interface and register its home in JNDI so WTC can look it up. Once that is done you can then export the service to a remote domain in the WTC configuration.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • Service start/stop

    I am trying out service start/stop between different JVMs but am not seeing what I expected. I have attached a quickly written test program to try out a scenario.
    1. Run the attached program (java Test -Dtangosol.coherence.cacheconfig=servicetest.xml) in 2 JVMs. Let's call them JVM1 and JVM2.
    2. At the JVM1 command prompt, type: startservice
    3. At the JVM1 command prompt, type: startcache
    4. At the JVM1 command prompt, type "i" six times. This should insert 6 items into the cache.
    5. At the JVM1 command prompt, type "c". Following is what is displayed:
    key=4, value=4
    key=3, value=3
    key=2, value=2
    key=1, value=1
    key=5, value=5
    key=6, value=6
    6. At the JVM2 command prompt, type: startservice
    7. At the JVM2 command prompt, type: startcache
    8. At the JVM2 command prompt, type "c". The six cache items are displayed.
    9. At the JVM1 command prompt, type "stopservice". The expectation is that the service on JVM1 is stopped and the cache items on JVM1 are transferred to JVM2.
    10. At the JVM2 command prompt, type "c". The following is displayed:
    key=4, value=4
    key=3, value=3
    key=1, value=1
    key=6, value=6
    Cache items 2 and 5 have disappeared. Why?
    Thanks
    Ghanshyam<br><br> <b> Attachment: </b><br>Test.java <br> (*To use this attachment you will need to rename 508.bin to Test.java after the download is complete.)<br><br> <b> Attachment: </b><br>Test.class <br> (*To use this attachment you will need to rename 509.bin to Test.class after the download is complete.)<br><br> <b> Attachment: </b><br>servicetest.xml <br> (*To use this attachment you will need to rename 510.bin to servicetest.xml after the download is complete.)

    Following is javadoc for the Controllable.shutdown( ) method:
    Stop the controllable service. This is a controlled shut-down, and is preferred to the stop() method.
    <b>This method should only be called once per the life cycle of the controllable service</b>. Calling this method for a service that has already stopped has no effect.
    I might need to expand and shrink the horizontal span of the cache multiple times without having to shutdown the JVM, which means I might need to shutdown the service multiple times, but the javadoc says I can't call shutdown more than once. Is there a different way to perform an orderly service stop?
    Thanks
    Ghanshyam

Maybe you are looking for