Menu

Problem

Help
2001-09-14
2001-09-14
  • Brian Foddy

    Brian Foddy - 2001-09-14

    hi Brian
          here is some infomation about my works

    I use apache-1.3.19 php-4.0.6 tuxedo-0.3.5
    I add a function  like this:
    PHP_FUNCTION(tux_tpinit_simple)
    {
        long return_val;
        return_val = tpinit( (TPINIT *)NULL);
        if(reture_val == -1)
        {
            php_error(E_WARNING,"TPINIT failed %d->(%s)",
                    tperrno,
                    tpstrerror(tperrno) );
        }
        RETURN_LONG(return_val);
    }

    I also add some php_log_err() in tux_tpinit(),tux_tpalloc(),tux_tpfree(),tux_tpterm()

    first i modify Makefile.in and config.m4

    config.m4
       
        dnl *********************************************/
        dnl #    config.m4
        dnl *********************************************/
       
        AC_DEFUN(PHP_TUXEDO_CHECKS, [
          if test -f $1/include/atmi.h; then
            TUXEDO_DIR=$1
            TUXEDO_INCDIR=$1/include
            TUXEDO_LIBDIR=$1/lib
          fi
        ])
       
        PHP_ARG_WITH(tuxedo,whether to include TUXEDO support,
        [    --with-tuxedo[=DIR]    Include TUXEDO support. DIR is the TUXEDO base install directory.])
       
        if test "$PHP_TUXEDO" != "no";then
            PHP_EXTENSION(tuxedo,$ext_shared)
       
            if test "$PHP_TUXEDO" = "yes"; then
                for i in /usr/local /usr; do
                    PHP_TUXEDO_CHECKS($1)
                done
            else
                PHP_TUXEDO_CHECKS($PHP_TUXEDO)
            fi
           
            if test -z "$TUXEDO_DIR"; then
                AC_MSG_ERROR(Cannot find atmi.h)
            fi
           
            if test `uname` = "Linux"; then
                TUXEDO_PTHREAD="pthread"
            else
                TUXEDO_PTHREAD=
            fi
           
            if test -f $TUXEDO_LIBDIR/libwsc.so; then
                PHP_ADD_LIBRARY_WITH_PACH(wsc,$TUXEDO_LIBDIR,TUXEDO_SHARED_LIBADD)
                PHP_ADD_LIBRARY_WITH_PACH(buft,$TUXEDO_LIBDIR,TUXEDO_SHARED_LIBADD)
                PHP_ADD_LIBRARY_WITH_PACH(gpnet,$TUXEDO_LIBDIR,TUXEDO_SHARED_LIBADD)
                PHP_ADD_LIBRARY_WITH_PACH(fml,$TUXEDO_LIBDIR,TUXEDO_SHARED_LIBADD)
                PHP_ADD_LIBRARY_WITH_PACH(fml32,$TUXEDO_LIBDIR,TUXEDO_SHARED_LIBADD)
                PHP_ADD_LIBRARY_WITH_PACH(engine,$TUXEDO_LIBDIR,TUXEDO_SHARED_LIBADD)
                PHP_ADD_LIBRARY_WITH_PACH(dl,/usr/lib,TUXEDO_SHARED_LIBADD)
                PHP_ADD_LIBRARY_WITH_PACH($TUXDEO_PTHREAD,/usr/lib,TUXEDO_SHARED_LIBADD)
               
                PHP_ADD_LIBRARY(crypt)
            fi
           
            PHP_ADD_INCLUDE($TUXEDO_INCDIR)
            PHP_SUBST(TUXEDO_SHARED_LIBADD)
            AC_DEFINE(HAVE_TUXEDO,1,[ ])
        fi

    Makefile.in
        LTLIBRARY_NAME        = libtuxedo.la
        LTLIBRARY_SOURCES    = php_tuxedo.c php_tuxedo_misc.c php_tuxedo_fml_api.c php_tuxedo_arrayfml.c
        LTLIBRARY_SHARED_NAME    = tuxedo.la
        LTLIBRARY_SHARED_LIBADD    = $(TUXEDO_SHARED_LIBADD)
       
        include $(top_srcdir)/build/dynlib.mk
       
    I drop the file named Makefile.dl and libs.mk

    I build apache and php in 3 method

    1static
        { // after unpack the source code of apache php and php_tuxedo
        //    put php_tuxedo in php-4.0.6/ext
            cd apache-1.3.19
            ./configure --prefix=/usr/local/apache
            cd ../php-4.0.6
            ./buildconf
            ./configure --with-apache=../apache_1.3.19 --with-tuxedo=$TUXDIR
            #    change EXTRA_LIBS in file config_vars.mk
            #    add a library  pthread
            make
            make install
            cp libs/* ../apache_1.3.19/src/modules/php4/
            cd ../apache_1.3.19
            #  change src/modules/php4/libphp4.modules
            #  add -lpthread to LIBS
            ./configure --prefix=/usr/local/apache --enable-module=src/modules/php4/libphp4.modules
            make
            make install
        }

    2shared php module
        {
        //    put php_tuxedo in php-4.0.6/ext
           
            cd apache-1.3.19
            ./configure --prefix=/usr/local/apache --enable-module=so
            make
            make install
           
            cd ../php-4.0.6
            ./configure --with-apxs=/usr/local/apache/bin/apxs --with-tuxedo=$TUXDIR
            make
            make install
        }

    3shared tuxedo for php
        {
            cd apache-1.3.19
            ./configure --prefix=/usr/local/apache --enable-module=so
            make
            make install
           
            cd ../php-4.0.6
            ./configure --with-apxs=/usr/local/apache/bin/apxs --with-tuxedo=$TUXDIR
            make
            make install
           
            cd /tmp
            mkdir tuxedo
            #copy  php_tuxedo files to tuxedo
            cd tuxedo
            /usr/local/bin/phpize
            ./configure --with-php-config=/usr/local/bin/php-config --with-tuxedo=$TUXDIR
            make
            make install
            #modify php.ini and add tuxedo.so support
        }

    when I do like this ,I always got error with library libpthread support,I,don't know how php works with it.

    /********************
    php file for test like this

    <?

    //    first i set env

        $data = "abcdefge";
        $ret = tux_tpinit_simple();
        if($ret == -1)
        {
            echo "tpinit error";
            exit();
        }
        $send_buf = tux_tpalloc(TUX_CARRAY,"",strlen(data));
        tux_put_buf($send_buf,$data);
        $recv_buf = tux_tpalloc(TUX_CARRAY,"",10);
        $ret = tux_tpcall("TOUPPER:,$send_buf,$recv_buf,0);
        if($ret == -1)
        {
            echo "tpcall error";
        }
        else
        {
            $text = tux_get_buf($recv_buf);
            echo "sevice return data ".$text;
        }
        tux_tpfree($send_buf);
        tux_tpfree($recv_buf);
        tux_tpterm();
    ?>

    *********************/
    some data from ULOG.* (on client)
        085858.project.umsp.net!?proc.1022.1024.0: LIBWSC_CAT:1055: ERROR: Unable to establish WSL connection
        085858.project.umsp.net!?proc.1022.1024.0: LIBWSC_CAT:1027: ERROR: Unable to connect to WSH
        085858.project.umsp.net!?proc.1022.1024.0: LIBWSC_CAT:1020: ERROR: Unable to obtain authentication level
        085858.project.umsp.net!?proc.1022.1024.-2: LIBWSC_CAT:1011: ERROR: tpcall() message send failure
        085858.project.umsp.net!?proc.1022.1024.-2: LIBWSC_CAT:1025: ERROR: Unable to send tpterm() request
        085902.project.umsp.net!?proc.1022.1024.0: LIBWSC_CAT:1055: ERROR: Unable to establish WSL connection
        085902.project.umsp.net!?proc.1022.1024.0: LIBWSC_CAT:1027: ERROR: Unable to connect to WSH
        085902.project.umsp.net!?proc.1022.1024.0: LIBWSC_CAT:1020: ERROR: Unable to obtain authentication level
        085902.project.umsp.net!?proc.1022.1024.-2: LIBWSC_CAT:1011: ERROR: tpcall() message send failure
        085902.project.umsp.net!?proc.1022.1024.-2: LIBWSC_CAT:1025: ERROR: Unable to send tpterm() request
        085904.project.umsp.net!?proc.1022.1024.0: LIBWSC_CAT:1055: ERROR: Unable to establish WSL connection
        085904.project.umsp.net!?proc.1022.1024.0: LIBWSC_CAT:1027: ERROR: Unable to connect to WSH
        085904.project.umsp.net!?proc.1022.1024.0: LIBWSC_CAT:1020: ERROR: Unable to obtain authentication level
        085904.project.umsp.net!?proc.1022.1024.-2: LIBWSC_CAT:1011: ERROR: tpcall() message send failure
        085904.project.umsp.net!?proc.1022.1024.-2: LIBWSC_CAT:1025: ERROR: Unable to send tpterm() request
        092421.project.umsp.net!?proc.705.1024.0: 09-04-2001: Tuxedo Version 7.1
        092421.project.umsp.net!?proc.705.1024.0: LIBWSC_CAT:1055: ERROR: Unable to establish WSL connection
        092421.project.umsp.net!?proc.705.1024.0: LIBWSC_CAT:1027: ERROR: Unable to connect to WSH
        092421.project.umsp.net!?proc.705.1024.0: LIBWSC_CAT:1020: ERROR: Unable to obtain authentication level
        092421.project.umsp.net!?proc.705.1024.-2: LIBWSC_CAT:1011: ERROR: tpcall() message send failure
        092421.project.umsp.net!?proc.705.1024.-2: LIBWSC_CAT:1025: ERROR: Unable to send tpterm() request
        092428.project.umsp.net!?proc.705.1024.0: LIBWSC_CAT:1055: ERROR: Unable to establish WSL connection
        092428.project.umsp.net!?proc.705.1024.0: LIBWSC_CAT:1027: ERROR: Unable to connect to WSH
        092428.project.umsp.net!?proc.705.1024.0: LIBWSC_CAT:1020: ERROR: Unable to obtain authentication level
        092428.project.umsp.net!?proc.705.1024.-2: LIBWSC_CAT:1011: ERROR: tpcall() message send failure
        092428.project.umsp.net!?proc.705.1024.-2: LIBWSC_CAT:1025: ERROR: Unable to send tpterm() request
        092446.project.umsp.net!?proc.705.1024.0: LIBWSC_CAT:1055: ERROR: Unable to establish WSL connection
        092446.project.umsp.net!?proc.705.1024.0: LIBWSC_CAT:1027: ERROR: Unable to connect to WSH
        092446.project.umsp.net!?proc.705.1024.0: LIBWSC_CAT:1020: ERROR: Unable to obtain authentication level
        092446.project.umsp.net!?proc.705.1024.-2: LIBWSC_CAT:1011: ERROR: tpcall() message send failure
        092446.project.umsp.net!?proc.705.1024.-2: LIBWSC_CAT:1025: ERROR: Unable to send tpterm() request
    some data from ULOG.* (on server)
        085401.ummail!WSH.11706.1024.0: WSNAT_CAT:1287: WARN: Forced shutdown of client; user name ''; client name ''; workstation address '//10.88.0.1:1723408'
        085404.ummail!WSH.11705.1024.0: WSNAT_CAT:1287: WARN: Forced shutdown of client; user name ''; client name ''; workstation address '//10.88.0.1:1726408'
        085405.ummail!WSH.11704.1024.0: WSNAT_CAT:1287: WARN: Forced shutdown of client; user name ''; client name ''; workstation address '//10.88.0.1:1729408'
        085406.ummail!WSH.11709.1024.0: WSNAT_CAT:1287: WARN: Forced shutdown of client; user name ''; client name ''; workstation address '//10.88.0.1:1732408'
        085407.ummail!WSH.11708.1024.0: WSNAT_CAT:1287: WARN: Forced shutdown of client; user name ''; client name ''; workstation address '//10.88.0.1:1735408'
        092052.ummail!WSH.11708.1024.0: WSNAT_CAT:1287: WARN: Forced shutdown of client; user name ''; client name ''; workstation address '//10.88.0.1:1152458'
        092100.ummail!WSH.11704.1024.0: WSNAT_CAT:1287: WARN: Forced shutdown of client; user name ''; client name ''; workstation address '//10.88.0.1:1191458'
        092117.ummail!WSH.11706.1024.0: WSNAT_CAT:1287: WARN: Forced shutdown of client; user name ''; client name ''; workstation address '//10.88.0.1:1282458'

    **********************/

    ### if code write as a standard c program and compiled to a bin executealbe file, it will work well.

    =============================
    CMM+++ESIߦ+̤++
      
    http://www.cmmcn.com
    =============================

     
    • Brian Foddy

      Brian Foddy - 2001-09-14

      I moved you email to the support thread for more people to view.

      Ok, from your first email you said...
      "I build a php with tuxedo 7.1 library support,it works
      well at most time but occur tpinit error sometimes. cording
      to the info in log file, tpterm() is done for each tpinit()
      call. I need your help"

      Most times, the most important error message is the first, the 1055 of not connecting
      to the WSL.  Now if it sometimes works, and sometimes doesn't (from the same instance
      of Apache), that is when things get interesting.  If I uderstand your note correctly,
      you are linking in the thread libs.  I could forsee some pretty ugly interactions between
      all the software layers (Apache, PHP, PHP-Tux, Tuxedo) using the thread libs.  You haven't said why you need the thread libs...  Lets take them out and strip things
      down to a simplier state...

      Also, do you see some benifit to you added function of tux_tpinit_simple?

      Brian

       

Log in to post a comment.