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()
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
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.
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
=============================
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