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__);

Similar Messages

  • Encountered problem when invoking a Tuxedo service

    Good day.
    I'm currently encountering a problem when trying to invoke a Tuxedo service from a JCS. The error is a LIBTUX_CAT:488 : ERROR: Invalid data pointer given to tpreturn(). The returned error message to the WLS console was "tpcall invocation failed[null]."
    It was previously working until I added a few more lines of code that invoked a database.
    Both the JCS and the JCX used to invoke the Tuxedo service are in a Web Service project, stored separately in different folders though.
    Could anyone help please? I haven't found any solution to this problem yet.
    Thank you.

    Umm.. I already problem. Sorry for bothering everyone.
    I was simply passing a value that was longer than the set buffer in the Tuxedo service.
    Could someone please close topic? Thank you.

  • I have taken off/turned off iCloud on my mac mini but when I write an email   and use contacts it will convert a non iCloud email to and iCloud email automatically.  I really don't want this. Any way to stop this automatic conversion?

    I have taken off/turned off iCloud on my mac mini (OS 10.8) but when I send an email and use contacts , it will convert the non - iCloud email to an iCloud email automatically.  Anyway to stop this automatic conversation?    

    Robert...
    the iCloud webserver wont accept my password for a .mac login, nor will it allow me to change it
    See if you can change your password >  Apple - My Apple ID
    If that doesn't help, launch iTunes on your computer.
    From the iTunes menu bar click iTunes / Preferences then select the Advanced tab.
    Click: Reset warnings and Reset cache
    Click OK.
    Restart your computer.
    If that that doesn't help...
    Moreover, when I try to go into my .mac account on the web,
    Delete all apple cookies and empty your browser cache.
    See if  you can access your account at iCloud.com

  • How to write Tuxedo service with conversational mode ?

    Is there anyone do me a favour and tell me how to write the conversational service
    ? I failed to use tpconnect to set up the converational communication channel
    since the returned error number from tpconnect is 6.
    Many Thanks !

    "huchacha" <[email protected]> wrote:
    >
    Is there anyone do me a favour and tell me how to write the conversational
    service
    ? I failed to use tpconnect to set up the converational communication
    channel
    since the returned error number from tpconnect is 6.
    Many Thanks !Hello,
    1. TPNOENT=6 (from atmi.h).
    2. After tpconnect (from Tuxedo docs):
    [TPENOENT] Cannot initiate a connection to svc
    because it does not exist or is not a conversational service.
    3. Check SERVER section in ubbconfig,
    for example (from Tuxedo docs):
    CONV = {Y | N} specifies whether or not the server
    is a conversational server.
    Connections can only be made to conversational servers,
    and rpc requests (via tpacall() or tpcall()) can only be made
    to non-conversational servers. The default is N.
    Best regards,
    Vladimir

  • ADF in Jdev 10.1.3.2 - Wrong Page Opens When "Open Link in New Window" Used

    We are former Oracle Forms/Reports developers and Struts developers in the early stages of a new project using ADF in JDeveloper 10.1.3.2. We are all new to this development environment (though not new to Java), so apologies in advance if this is trivial.
    Our early work is based on samples extracted from Oracle's ADF Tutorial for Forms/4GL developers and is pretty simple at this stage. We have done little more than create a page layout and implemented skeletons of each page. As long as we click a link with the left mouse button, we can navigate from page to page as expected, no problem.
    The strangeness starts when we right click a link, and select Open in New Window. For example:
    (Note, all of this is taking place in our development environment: Jdeveloper running on our personal PCs / laptops, we have not even tried to deploy to an application server yet):
    1. Open page 1.
    2. Error 1: Right click button or tab to page 2, select Open in New Window. Page 1, not page 2, will open in the new window.
    3. Close the new window so that the original page 1 is displayed.
    4. Left click a link to navigate to page 2. Page 2 is display as expected.
    5. On page 2, left click link back to page 1 (NOT the browser Back button). Page 1 is displayed as expected.
    6. Error 2: Right click a link to page 3, select Open in New Window. Page 2, not page 3 will open in the new window.
    7. Close the window containing Page 2. Left-click the link for page 3 and it will open as expected.
    8. On page 3, left click a link back to page 1 (NOT the browser Back button). Page 1 is displayed as expected.
    9. Now right-click the same link to page 3 as in step 6 and select open in new window and page 3 will display as expected.
    The logs mention "Reusing a cached session application module instance" and I think this is where our trouble is. I considered turning this caching off (if possible) to see if it clears up the problem, but (a) I don't see where to do that and (b) it seems like we would want to use any caching features once we go to production.
    I suspect we have some minor configuration error somewhere as it seems unlikely that ADF applications would all come with a "No opening in new windows allowed" warning. Or, maybe we are just missing the boat on why this shouldn't work. Either way, any useful guidance would be appreciated.
    Thanks!

    Pravin
    We dont get number datatype if you have SQL92 selected as SQL Flavour. So i dont think this would help. SQL TYPE Map is JAVA basically in my project. Do you want me to import some of oracle.jbo.domains specifically or something else you want me to do
    regards
    Amit

  • 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

  • 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

  • Errors when compiling the web service (SAP Web Service Design Tool)

    After downloading and installing the SAP de Web Service Design Tool (for Crystal Reports Server) I created a connection, a simple query and was able to deploy a web services. I tested the web service with an Xcelsius dashboard within InfoView. Thereafter I created a second connection (other name but same ODBC connection / server) and created another simple query with two date(range) parameters and a group by year and month function in order to do a select count(). It executes fine, but when I try to publish the web service I get an error.
    There are errors when compiling the web service.
    Is does not say whatu2019s wrong or how I can solve this problem.
    Who can help me?
    Some notes:
    1) Within expert mode I used a MONTH() SQL function which does not show in the normal mode.
    2) It seams that the u2018administrationu2019 of Web Service Design Tool got u2018corruptedu2019 after only creating the two connections, queries and services mentioned above. I believe so because I could select one of two queries when I created the second service, but within the current connection I had only one query.
    Thanks for any help,
    Ron
    ADDITIONAL INFO: The parameters seam to be the problem. After removing the parameters I can publish the service. But without parameters it is NO SOLOTION.
    Edited by: RonKoudijs on Aug 26, 2010 6:28 PM

    Hello Taylan,
    I think the error that you received was due to packaging issues.I placed the
    UtilClass.java file under a directory called data which was present under
    the project directory.
    When you want to access a java class, you can either place the compiled
    class file in the WEB-INF/classes folder or you can place the java file
    under the project directory.
    I have attached the sample project that I created with your files.
    Let me know if you have any other questions.
    Thanks
    Raj Alagumalai
    WebLogic Workshop Support
    "taylan" <[email protected]> wrote in message
    news:3d6351b0$[email protected]..
    >
    I am trying to write a simpe web service in WebLogic Workshop, but havingan error
    which I could not understand. Could you please help me? Thanks in advance.
    Regards,
    Taylan
    My web service code is like belows:
    import weblogic.jws.control.JwsContext;
    import data.*;
    public class WebService1
    /** @jws:context */
    JwsContext context;
    * @jws:operation
    public UtilClass testType(UtilClass tTest){
    UtilClass returnObj=new UtilClass();
    if(tTest.getName()!= null){
    returnObj.setName(tTest.getName());
    return returnObj;
    and my UtilClass is placed in the data directory under the same directorywith
    my web service code. It is a simpe class as belows:
    package data;
    public class UtilClass
    private String name;
    public void setName(String name){
    this.name=name;
    public String getName(){
    return name;
    However I got an error when I try to compile the webservice class. Theerror is
    like belows:
    File Line Message
    WebService1.jws 0 Resource found on system classpath: data.UtilClass
    Build complete - 1 error(s), 0 warning(s)
    [ngroup.zip]

  • 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

  • UPDATE ... FROM, wrong translation in Scratch Editor

    I use SQL Developer 1.5.0.52
    I want migrate from T-SQL(MSSQL 2005) to PL/SQL(Oracle 10g) in the Scratch Editor. I often use the UPDATE ... FROM command in T-SQL, the tranlation in the Scratch Editor is wrong with more than one join. I need a quick solution for my problem!
    Little example:
    Tables:
    drop table A;
    create table A(
    a1 int,
    a2 int
    drop table B;
    create table B(
    b1 int,
    b2 int
    drop table C;
    create table C(
    c1 int,
    c2 int
    insert into A values( 1, 1);
    insert into A values( 2, 2);
    insert into A values( 3, 3);
    insert into B values( 1, 1);
    insert into B values( 2, 2);
    insert into B values( 3, 3);
    insert into C values( 1, 11);
    insert into C values( 2, 22);
    insert into C values( 3, 33);
    T-SQL with 2 tables
    update A
    set A.a2 = c.c2
    from A inner join C on A.a1 = c.c1
    PL/SQL with 2 tables
    The Scratch Editor translates it correct and I can work with this translation.
    MERGE INTO A
    USING (SELECT * FROM C) C
    ON ( A.a1 = c.c1 )
    WHEN MATCHED THEN UPDATE SET a2 = c.c2;
    T-SQL with 3 tables
    Now we take a table more between A and C (it's simple in T-SQL):
    update A
    set A.a2 = c.c2
    from A
    inner join B on A.a1 = B.b1
    inner join C on B.b2 = c.c1
    PL/SQL with 3 tables, wrong translation
    The Scratch Editor translates it in a difficult form and it's only correct, when the where clause get only one ROW.
    ==> The solution is wrong for all other cases( more then one ROW)
    UPDATE A
    SET ( a2 ) = ( SELECT c.c2
    FROM A
    JOIN B on A.a1 = B.b1
    JOIN C on B.b2 = c.c1 )
    WHERE ROWID IN (SELECT A.ROWID
    FROM A
    JOIN B on A.a1 = B.b1
    JOIN C on B.b2 = c.c1);
    PL/SQL with 3 tables, correct translation(my desire)
    My own translation:
    MERGE INTO A
    USING ( select B.b1, B.b2, C.c1, C.c2
    from B
    inner join C on B.b2 = C.c1) e
    on (A.a1 = e.b1)
    WHEN MATCHED THEN UPDATE
    set A.a2 = e.c2;
    I want the correct translation with the Scratch Editor or I must write an own tool for this case. It is possible to config the Scratch Editor for specific cases?

    Hi Carlos,
    Thanks for this feedback. The nice testcase really helps.
    I have replicated your issue and added the details to the bug
    6976327: OTNFORUMS : UPDATE JOIN CLAUSE NOT TRANSLATED CORRECTLY
    As they are in a similar area to the other issue you reported.
    You solution is fine, but I would like to suggest a small change as to how the Translator should behave.
    T-SQL
    update A
    set A.a2 = c.c2
    from A
    inner join B on A.a1 = B.b1
    inner join C on B.b2 = c.c1
    Your Solution
    MERGE INTO A
    USING ( select B.b1, B.b2, C.c1, C.c2
    from B
    inner join C on B.b2 = C.c1) e
    on (A.a1 = e.b1)
    WHEN MATCHED THEN UPDATE
    set A.a2 = e.c2;
    Suggested Solution
    MERGE INTO A
    USING ( SELECT a.rowid a_rowid, c.c2
    from A
    inner join B on A.a1 = B.b1
    inner join C on B.b2 = c.c1) x
    on (A.rowid = x.a_rowid)
    WHEN MATCHED THEN UPDATE
    set A.a2 = x.c2;
    I think the suggested solution is a little more easier to translate and maintain.
    I keep the entire set/from/on clauses together and just added the rowid. . Then I only have to reference the rowid in the ON clause to specify which rows to change. In your solution the on clauses are broken up between the subquery and the on condition.
    Any comments appreciated.
    Thanks
    Dermot.

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

  • Tpinit error when call a remote service

    i have to call a remote tuxedo service in my local service,and the remote
    service need to be authenticated when use tpinit. when i use tpinit in my
    service,it will be error, i think maybe the application does not know which
    tuxedo service i will call(local or remote),so,it may think my tpinit was
    for my local service,then some error here.
    what shall i do when call a remote service which need to be authenticated at
    tpinit???
    fish

    it's ok now,i made a stupid mistake.:)
    "Anthony Fryer" <[email protected]> дÈëÏûÏ¢ÐÂÎÅ
    :[email protected]..
    >
    What you should do is configure DOMAIN gateways between the remote tuxedodomain
    and your own local domain. Then you don't need to call tpinit at all fromthe
    local service that calls the remote service.
    "fish" <[email protected]> wrote:
    i have to call a remote tuxedo service in my local service,and the remote
    service need to be authenticated when use tpinit. when i use tpinit in
    my
    service,it will be error, i think maybe the application does not know
    which
    tuxedo service i will call(local or remote),so,it may think my tpinit
    was
    for my local service,then some error here.
    what shall i do when call a remote service which need to be authenticated
    at
    tpinit???
    fish

  • 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

  • [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`

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

Maybe you are looking for