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

Similar Messages

  • 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

  • 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

  • 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]

  • Tuxedo Service Debugging

    Hi All ,
    Is it possible to debug Tuxedo Services using GDB in Unix environment (AIX) ..
    Could you please share your experience in this regard
    Thanks in advance
    Nadeer.

    Nadeer,
    Yes, it is possible to debug services using GDB. To get the most debugging
    information, you should "export CFLAGS=-g" when running buildserver so that
    your server will be compiled with debugging on. After booting the server,
    you can attach to the running server using "gdb myserver process_id" and set
    breakpoints. After setting breakpoints, you can give the "continue" command
    and send a client request to the server.
    Ed
    "nadeer ahammed" <[email protected]> wrote in message
    news:[email protected]..
    Hi All ,
    Is it possible to debug Tuxedo Services using GDB in Unix environment
    (AIX) ..
    Could you please share your experience in this regard
    Thanks in advance
    Nadeer.

  • TPESYSTEM error when calling tuxedo service

    Hello,
    I have a problem when running my own EJB as a TUXEDO service using WTC.
    Im using TUXEDO 8.1 and WL 8.1.
    My TUXEDO and WTC configuration seems OK, because TOLOWER example is running OK.
    When im trying to run my own EJB as a TUXEDO service on TUXEDO side TPESYSTEM
    error appears.
    JDNI name and configuration of the EJB is correct, because when I put wrong JNDI
    then on TUXEDO side TPENOENTRY error appears. Additionally - my EJB's bussines
    logic is pretty the same as TOLOWER example.
    I think that is EJB issue because in server logs there is an information that
    domains are connected but ejbCreate method isn't called. My EJB was developed
    using JBuilder 9 WebLOgic Edition and WL Workshop 8.1.
    Thanks,
         Patrick

    Hi Hemant,
    I'm not sure, but my guess is it was a setup problem. Perhaps not implementing the right interface in the EJB, not having the correct home specified, etc.
    Usually the best way to find these errors the first time is to turn on some debugging information in WLS. More information can be found at: http://edocs.bea.com/wls/docs91/wtc_admin/Install.html
    For this sort of problem, it probably makes sense to enable -Dweblogic.debug.DebugWTCGwtEx=true and/or -Dweblogic.debug.DebugWTCJatmiEx=true
    The above examples are for WLS 9.1 and later. For earlier releases of WLS, check edocs for the settings of weblogic.wtc.TraceLevel
    Best Regards,
    Todd Little
    BEA Tuxedo Chief Architect

  • Troubleshooting tuxedo services .. related to Oracle deadlock errors

    Afternoon all,
    I support an application that allows API calls to tuxedo services using messages comprised of FML fields. Our application sits on an OracleDB that is experiencing deadlock issues, one of the tuxedo servers involved in the deadlock is one that advertises services accessed by the API calls so I'm trying to rule it out as the source.
    Is there any way to trace/log the services in detail so that I can tie the deadlocks directly to a call of a tuxedo service?
    I've looked into TMTRACE, but I'm not sure this is going to give me the detail I need.
    Changing application code is not an option unfortunately.
    Thanks,
    Adam

    Hi Todd,
    Thanks for the quick response.
    Aplogies for the ignorance, but what do you mean by XA / local database transaction?
    Our architecture is such that a tuxedo server, that offers the services our APIs talk to, makes the Oracle updates. Is that XA or local?
    Oracle's logging and deadlock messages show me what the updates are, but I'm trying to make sure 100% that an API called service is instigating that update.
    Hope that is clear enough!
    Cheers,
    Adam
    Todd Little wrote:
    Hi Adam,
    Are the Tuxedo services using XA transactions or only local database transactions? The reason I ask is that TSAM offers the ability to track XA transactions and might be able to tell you what's happening. It can also track services and call paths, i.e., complete end-to-end call tracking from a Tuxedo client, through intervening servers (services).
    If you are not using XA transactions, I'm afraid there isn't a lot that Tuxedo can provide you as Tuxedo is unaware of the underlying database requests. In fact, if you aren't using XA transactions, Tuxedo doesn't even know a database is involved it the processing of requests.
    I would think you should be able to trace things from the database side, but you'd have to ask that question over in the database forums as I'm not familiar enough with what tracing/debugging facilities on the database side to give you much help.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • Tuxedo service in JAVA

    Can i write a tuxedo service using JAVA...does tuxedo provide APIs for that ?

    Hi,
    You can build any binary executable that calls Java and vice versa, using JNI, but then, manageing a tpreturn(3c) without getting back to the C stub sounds dangerous, when you know what tpreturn(3c) does (longjump). Put your JavaCose Caller C Function in a library, and it can be called from any C code.
    Then you need to be aware that you loose some good points of Java: How can you make a ThreadDump in that context?
    Also it rises new basic questions: Will Java's Multiple threads interfere with Tuxedo MultiThreaded server-side architecture? How can all the threads of your server safely share the same JVM instance? What about the classloaders? The Database connections? The XA Interface?
    But if you do so, be warned about the memory leak problems you may face. Some products use that technology, but have to commit suicide every 10000 requests to avoid memory leaks.
    I would strongly advice you to benchmark your executables so as to prevent that from happening...
    A++
    Lionel

  • [help]a problem about dbx/attach a tuxedo service

    I attempted to trace a Tuxedo service process via dbx/attach command:
    attach nnnnwhen I attached dbx to the service PID, the service process is stopped somewhere outside my service program:
    (/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) where
    current thread: t@1
    =>[1] __systemcall(0xffbfeda8, 0x31, 0x2, 0x10540c, 0x2cc0e8, 0x641dc), at 0xfe120080
      [2] _libc_msgrcv(0x10540c, 0x2cc0e8, 0x641dc, 0xc0000000, 0x0, 0x2ec), at 0xfe117928
      [3] msgrcv(0x10540c, 0x2cc0e8, 0x641dc, 0xc0000000, 0x0, 0x0), at 0xfe45dc40
      [4] _tmmbrecvm(0x0, 0xbdb0c, 0x2, 0xa, 0x0, 0x7), at 0xfe59b658
      [5] _tmmsgrcv(0xfffffffc, 0xfe5fdaa8, 0x0, 0xffff, 0xbf800, 0xb76c8), at 0xfe4bc1d0
      [6] _tmrcvrq(0xae608, 0xffbff38c, 0x22, 0x10000000, 0x1000, 0xc0000000), at 0xfe4f9738
      [7] _tmrunserver(0x0, 0x1400, 0x0, 0xfe5fdaa8, 0x0, 0xb76c8), at 0xfe4fe418
      [8] _tmstartserver(0x15, 0x1c00, 0x8b160, 0xae608, 0x0, 0x8af88), at 0xfe4d7530
      [9] main(0x15, 0xffbff4bc, 0xffbff514, 0x8b000, 0x0, 0x0), at 0x238f8However, I can not resume the service process either. when I use cont command, the dbx seems to stop there with no input prompt.
    Has anyone debug a tuxedo serive in SunOS using dbx?How can I resume the server process If I want to print the local variables?Thank you in advance!
    Edited by: angeloyu on Sep 16, 2008 8:02 PM

    angeloyu wrote:
    I attempted to trace a Tuxedo service process via dbx/attach command:
    attach nnnnwhen I attached dbx to the service PID, the service process is stopped somewhere outside my service program:
    (/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) where
    current thread: t@1
    [9] main(0x15, 0xffbff4bc, 0xffbff514, 0x8b000, 0x0, 0x0), at 0x238f8
    Judging by WS6U2 above, I assume you are using dbx 6.2, which is very, very old. Unless you need it to work on similarly old Solaris, please consider upgrading to Sun Studio 11 (supports Solaris 8) or Sun Studio 12 (supports Solaris 9+). Both are free and contain many improvements.
    angeloyu wrote:
    However, I can not resume the service process either. when I use cont command, the dbx seems to stop there with no input prompt.That's kind of expected behavior from the debugger - it resumes debuggee and sits there until debuggee generates some event (like hitting breakpoint or receiving a signal). Once dbx gets notified of this event, it presents details to the user and provides input prompt.
    Did you put any breakpoints in (with stop command)? You'll also need to make sure breakpoint is reached by that service you are debugging.
    Anyways, if all you need is to trace the service, it might be easier to use truss(1) command like this:
    $ truss -p `pgrep Tuxedo`

  • How to deploy and debug java web service in eclipes or using any other soft

    Hai,
    can any one tell me how to deploy and debug java web service in eclipes or using any other software.
    i have used tomcat web server and jdk1.4.0 to develop web service.
    we have used web service to interact with MS outlook .
    bye
    sudhakar.m

    Hi Sudhakar,
    If you are used to working with ant then you can very well use eclipse to deploy your web service.
    You would usually have the ant script in the source root working directory. From eclipse if you select the build file from the navigator view and right click you will see a run ant option in the pop up menu.
    Select that option and you would be able to see each targets with a checkbox select option. So define each target maybe one for wsdl2java conversion, one for compilation and one for deploying your web services. You can either make all of them run by having depends option on or you can run them individually as it takes your fancy.
    I am not sure about debugging a web service yet.
    Hope this helps
    Aviroop
    The truth is out there? Does anyone know the URL?

  • Is it possible to modify SQL DB tables using TUXEDO services???

     

    Hi,
    I dont know how to use to resource manager to connect to the SQL Server Database
    nor have I ever worked with SQL Servers.
    But you could possibly try doing the following.
    In the Tuxedo Server / Service, using Pro*C, you can use the
    EXEC SQL CONNECT :userid IDENTIFIED BY :password statment.
    This should open the connection to the SQL Server DB. and then using the regular
    Pro*C SQL Statement you should be able to do modify the tables.
    But please be sure that the user id you use has the Insert/Update/Delete rights
    on the tables that you access.
    I hope this helps.
    Regards
    Amit

  • Wrong translation commond when I write Tuxedo Service to use Informix Database

    Old Environment:
    DB : Informix Dynamic Server Version 7.31.UC5
    Tools : INFORMIX-ESQL Version 7.24.UC8
    MIDDLE : Tuxedo 6.4 patch 341
    New Environment :
    DB : Informix Dynamic Server Version 9.30.FC1
    Tools : IBM Informix CSDK Version 2.80,
    IBM Informix-ESQL Version 9.52.UC2
    MIDDLE : Tuxedo 8.0 patch 135
    Event :
    My old tuxedo service had wroted to communicate with Informix Database by
    XA transaction. In my service code have to
    prepare informix statement by command
    ' EXEC SQL PREPARE p_roll FROM "ROLLBACK WORK" ' And in my old environment it's
    workable until I upgrade my environment.
    My old tuxedo service can compile in new environment but when i try to test
    service by ud32 tool the result is error "A syntax error has occurred". After
    I check my code and receive statement at Database host I found some thing does
    not correct.
    I send to prepare ' ROLLBACK WORK ' but at database host received ' ROLLBACK WORKRK"
    ' that unknown command to database.
    I try to write my small new code to test PREPARE command of Informix ESQL/C
    without to build to Tuxedo Server, It's can work correctly.
    If you had found the same case , Please advise me too.
    Thanks you very much for your advise.
    [roll.ec]

    If ud32 reported a syntax error, then your service was never called.
    Normally, a service running under XA control should not issue transactional SQL
    statements. Begins and Rollbacks are issued from the transaction manager, not the
    application code.
    Can you post the Tuxedo message catalog number, and your ud32 script, as well as
    your environment variables?
         Scott Orshan
    Sutep wrote:
    Old Environment:
    DB : Informix Dynamic Server Version 7.31.UC5
    Tools : INFORMIX-ESQL Version 7.24.UC8
    MIDDLE : Tuxedo 6.4 patch 341
    New Environment :
    DB : Informix Dynamic Server Version 9.30.FC1
    Tools : IBM Informix CSDK Version 2.80,
    IBM Informix-ESQL Version 9.52.UC2
    MIDDLE : Tuxedo 8.0 patch 135
    Event :
    My old tuxedo service had wroted to communicate with Informix Database by
    XA transaction. In my service code have to
    prepare informix statement by command
    ' EXEC SQL PREPARE p_roll FROM "ROLLBACK WORK" ' And in my old environment it's
    workable until I upgrade my environment.
    My old tuxedo service can compile in new environment but when i try to test
    service by ud32 tool the result is error "A syntax error has occurred". After
    I check my code and receive statement at Database host I found some thing does
    not correct.
    I send to prepare ' ROLLBACK WORK ' but at database host received ' ROLLBACK WORKRK"
    ' that unknown command to database.
    I try to write my small new code to test PREPARE command of Informix ESQL/C
    without to build to Tuxedo Server, It's can work correctly.
    If you had found the same case , Please advise me too.
    Thanks you very much for your advise.
    #include     <stdio.h>
    #define BUFF          30
    #define SQLROWCOUNT sqlca.sqlerrd[2]
    exec sql define LNGTH1     40;
    main()
         exec sql whenever sqlerror goto :sqlx;
         exec sql begin declare section;
              string     hs_vlue_char[LNGTH1];
              string     hs_sql[500];
         exec sql end declare section;
         long     li_line;
         fprintf(stderr,"\nProcessing...\n");
         exec sql connect to 'sysmaster@oltp';
         li_line = __LINE__;
         exec sql prepare bwork from "BEGIN WORK";
         li_line = __LINE__;
         exec sql prepare cwork from "COMMIT WORK";
         li_line = __LINE__;
         exec sql prepare rwork from "ROLLBACK WORK";
         printf("%d: Before Rollback Work\n", __LINE__);
         EXEC SQL PREPARE p_rwork FROM "ROLLBACK WORK";
         /* free(hs_v[tmp]);
         hs_v[tmp] = strfmt("%s", "rollback work");
         CHECK_STRFMT_ERROR( hs_v, tmp);
         debug("'%s'", hs_v[tmp]);
         exec sql prepare p_rwork from :hs_v[tmp];
         printf("%d: After Rollback Work\n", __LINE__);
         printf("%d: Before Begin Work\n", __LINE__);
         EXEC SQL PREPARE p_bwork FROM "BEGIN WORK";
         printf("%d: After Begin Work\n", __LINE__);
         printf("%d: Before Commit Work\n", __LINE__);
         EXEC SQL PREPARE p_cwork FROM "COMMIT WORK";
         printf("%d: After Commit Work\n", __LINE__);
         sprintf(hs_sql, "SELECT vlue_char from cs_dfpm where dfpm_code = 'LOG_PATH_NAME1'");
         printf("hs_Sql = %s\n", hs_sql);
         exec sql prepare sel_sql from :hs_sql;
         exec sql execute sel_sql into :hs_vlue_char;
         printf("hs_vlue_char = %s\n", hs_vlue_char);
         exec sql free sel_sql;
         exec sql execute p_bwork;
         exec sql
         update cs_dfpm
         set vlue_char = '/test/'
         where dfpm_code = 'LOG_PATH_NAME1';
         if ( SQLROWCOUNT == 0 )
              exec sql execute p_rwork;
         exec sql execute p_cwork;
         exec sql free p_bwork;
         exec sql free p_cwork;
         exec sql free p_rwork;
         exec sql disconnect current;
         fprintf(stderr, "\nProcess completed successfully.\n");
         return(0);
    sqlx:
         fprintf(stderr,"\nDB error encountered at line = %ld(%ld)\n", li_line, SQLCODE);
         fprintf(stderr,"\nDB error encountered(%ld)\n", SQLCODE);
         exec sql whenever sqlerror continue;
         exec sql free sel_sql;
         exec sql free p_bwork;
         exec sql free cwork;
         exec sql free rwork;
         exec sql disconnect current;
         printf("%s@%d:Process completed with Error.\n", __FILE__, __LINE__);

  • Using IBM Tivoli Access Manager to Secure Tuxedo Services

    Wondering if anybody has any experience using 'IBM Tivoli Access Manager for e-business' to perform tuxedo service authorization ?
    Is there an out-of-the-box integrated solution available or does one have to basically build a security service that use the Tivoli Access Manager APIs to determine if the user is authorized to invoke service?
    Thanks,

    Hi,
    I followed the steps of establishing SSO using TAM for OBIEE application.
    Below is the piece of code that i had inserted in the "instanceconfig.xml" to enable SSO:
    <Listener>
    <!-- other settings ... -->
    </Listener>
    <CredentialStore>
    <CredentialStorage type="file" path="<OracleBIData>/web/config/credentialstore.xml" passphrase="another"/> </CredentialStore>
    <!-- other settings ... -->
    <Auth>
    <SSO enabled="true">
    <ParamList>
    <!--IMPERSONATE param is used to get the authenticated user's username and is re quired -->
    <Param name="IMPERSONATE"
    source="httpHeader" nameInSource="iv-user"/>
    </ParamList> <!--Optional. Replace the URLs with actual logoff/logon URL-->
    <LogonUrl>http://pkmslogin</LogonUrl>
    <LogoffUrl>http://pkmslogout</LogoffUrl>
    </SSO>
    </Auth>
    My credential store file look Like on below
    <sawcs:credential type="usernamePassword" alias="impersonation">
    <sawcs:username>USER</sawcs:username>
    <sawcs:password>password</sawcs:password>
    </sawcs:credential>
    In the above code i am trying to get the userID of a User through the header of the application's URL, who has been already been authenticated by Windows desktop Authentication mechanism .
    but then i try creating a junction using TAM and access the application through the junction i still get the logon page of OBIEE application...
    Can any one help me out in this issue..
    Thanks in Advance...

  • Debugging a Daemon using DBX

    Hi
    I have a task assigned to debug an application which is using multithreading and written in c.
    Sould you please help me how i can debug a Daemon written in c.
    If i donot have to use DBX then i will simply run my program as:
    nohup /dir1/dir2/executable_name /dir1/file_name
    The code is complied with -g option.
    But what i'm not sure is how i will execute the binary from DBX and with the paramtere (file_name).
    Help is greatly appreciable.
    Thanks.

    First of all, run command cannot be used for debug target specification, it accepts parameters that you want debuggee to run with. In order to specify program to debug, use debug command like this:
    (dbx) debug /path/file_nameAlso, you don't have to run a program from the dbx in order to be able to debug it later.
    You just do
    $ nohup /path/file_name &
    Sending output to nohup.out
    $ pgrep file_name
    12345
    $ dbx - 12345And dbx will attach to recently started program with pid 12345.
    If you need you daemon to stop before main, then you can simply use debug dbx command as usual, no nohup is needed. If you need i/o redirected, use > like this:
    (dbx) run > log (there's no way to redirect stderr, only stdout).
    And remember: run command is for starting the program, debug command is for specifying which program to start.

  • How to deal with "Error 1001. The specified service already exists" when install a service using installer package?

    Hi everybody,
    I wrote a "Class Library" project which is a service using Visual Stodio 2008 recently, then tried to use a Visual Studio 2008
    Setup Project to install it.
    Here is what I did for the "Class Library":
    1. Finish the program.cs, Service.cs
    2. Add Installer
    3. Change the serviceInstaller so that "StartType" to be Aotumatic
    4. Change the ServiceProcessInstaller2 so that "Account" to be LocalSystem
    5.
    6. Click in F5 (Start Debugging)
    Here is what I did for the Setup Project:
    1. Add the exe file built from the "Class Library" project to the Application Folder
    2. On the Custom Action Editor, add the exe file from 1 to Install and Commit
    3. Change the property of the project so that "RemovePreviousVersion" to be true
    4. Click on F6(Build Solution)
    Then I tried to run the msi file from the built of the Setup Project. Because I modified the two projects serveral times, I uninstalled the Class Library using "Control Panel->Add or Remove Programs" before I reinstall. Two things I notived:
    1. After unstall, the registry was not cleaned up about the installed program
    2. After several rounds install/uninstall, I got "Error 1001. The specified service already exists"
    My questions are:
    1. How to cleanup the registry when uninstall a program?
    2. How to deal with the "Error 1001. The specified service already exists"?
    3. Did I do anytbing wrong with the "Class Library" or the "Setup Project"?
    Thanks a lot!
    Helen

    Hi Simon, not a problem!
    I spent some more time on this and here are few more notes:
    it is called Major Upgrade, when you are installing new version of the product upon a previous one and
    MSI supports 2 strategies:
    Strategy 1. Install a new version and uninstall previous one. (Install a new version right upon previously installed version (file merging is performed based on dll version number) and the delete previously
    installed files)
    Strategy 2. Uninstall previous version and install a new one (Delete all previous files and install from scratch new files.)
    From the first look it seems that 1st strategy is weird and buggy. But, remember, MSI is great because it's transactional!!! That means that if once some of the phases (Installation, Uninstallation, Rollback, Comit) fails, your machine
    will be reverted to the previous state and it'll be still functional. 
    Let's consider both strategies:
    Consider you have installed product_v1.msi and you want to install product_v2.msi.
    Strategy 1
    1. MSI engine copies files from Product_v1 directory to TEMP directory
    2. MSI engine merges files based on the assembly version (between v1 and v2)
    3. Once merging is completed successfully it removes files in TEMP (RemoveExistingProducts  action triggers it) and you got product_v2 installed, otherwise if it fails MSI engine revert machine to V1 and copies previous files from TEMP.
    Strategy 2
    1. MSI engine tottaly removes all files from v1.
    2. MSI engine installs v2 files and if something goes wrong you cannot revert back, because RemoveExistingProducts  allready worked out and MSI doesn't have files to revert machine back
    I recommend to everybody to use Strategy 1 and leverage MSI transaction functionality. And you can set this strategies by defining sequence of RemoveExistingProducts action. See more info
    here.  So, I think it's not even a bug in VS as I said in the upper post it is default recommened behaviour.
    AND, you got "Error 1001. The specified service already exists"
    because if we follow Strategy 1 MSI engine tries to install Windows Service on top of the existing service and OF COURSE it fails MSI engine (StopServices, DeleteServices actions are executed before actual
    installation and  they look at ServiceControl table). In order to stop service first and delete them you have to fill ServiceContol table of the MSI (and then StopServices, DeleteServices actions will recognize what to they have to stop
    and delete), like this:
    *clip*clip*clip*
    ' see http://msdn.microsoft.com/en-us/library/windows/desktop/aa371634(v=vs.85).aspx for more info
    ' Update the Service Entry to stop and delete service while uninstalling
    query = "INSERT INTO ServiceControl (ServiceControl, Name, Event, Arguments, Wait, Component_) VALUES ('MAD_Service', 'Service name', '160', '', '1', '"
    + componentName + "')"
    Set view = database.OpenView(query)
    : CheckError
    view.Execute : CheckError
    ' Update the Service Entry to stop and delete service while installing
    query = "INSERT INTO ServiceControl (ServiceControl, Name, Event, Arguments, Wait, Component_) VALUES ('MAD2_Service', 'Service name', '10', '', '1', '"
    + componentName + "')"
    Set view = database.OpenView(query)
    : CheckError
    view.Execute : CheckError
    *clip*clip*clip*
    We can uninstall service first by following Strategy 2, but then we lose transactional support.
    So, Simon did I encourage you to change your code a bit?:)
    And, btw, if you don't want to change the strategy, please don't rely on SequenceID in MSI table, it can be change, you have to get the at the runtime.
    Hope it will help to everybody!
    See also more advanced explanation of how MSI works
    here.
    Truly yours, Marat

Maybe you are looking for

  • Validation at Document Type level

    Dear Seniors, We have a requirement to have a validation for posing various documents by different users. Document type  JV should be posted by only a set of users USERS1. Document type GB should be posted by only a set of users USERS2. Document type

  • Just migrated to a new air - library is there, but doesn't show in iPhoto

    how do I connect my iphoto library to iphoto - everything imported over fine, though the old computer was running iphoto 7.15 and the air has version 9

  • All field lables for PCUI screens in Portal is displayed with Vertical bar

    Hi Group,   In Portals, all PCUI screen Field lables are displayed with vertical bar in the biginning of the field.   can somebody tell me how i can get rid of that vertical bar from all Fields. let me know if there is any SAP Note available for this

  • HTMLDB 1.6 Popup LOV navigation not working

    Hi all, I've recently migrated from 1.5 to 1.6. The pop-up LOV's navigation buttons (ie: Next) do not work. I click them but nothing happens. Any ideas? This happens regardless of the query used... Thanks...

  • Different sample rates from different cameras

    I took some video with my Panasonic video camera which samples at 48kHz. At the same time I was shooting with my Digital camera which samples at 8kHz. I am trying to pan between the two of them but the timing does not match up through the video. The