Hi,
this mail will report, how to install Jboss with interbase from borland as backend on
a suse 7.0 system.
I write this because it takes 7 days of my small time budget. It was realy crazy. No
one should never take the same hard way of mistakes.
1.
Install Interbase from www.interbase.com. Unpack and run, there is no problem.
Attention on the first gsec call.
gsec -user SYSDBA -password changeme (different to windows, where the password is
"masterkey")
Create a database. See Doku.
2.
You need an JDBC driver. OK, no prblem. But I found no hint about the interserver
mistery. This file MUST run to connect JDBC and ibserver
(Note: ibserver and interserver are not the same !)
Second problem: the interserver from from Borland will not run on Suse Linux 7.0
because a libary is missing. No way there.
Solution: Take interserver from firebird. How to get sources from this ? Read
http://firebird.sourceforge.net.
Now you have to compile this stuff under interclient/20/dev/interserver with make.
If will not have egcs installed. But there is a work around:
patch makefile:
#CC= gcc
#For linux
LINUX_CC=gcc
# ------------- set this to gcc as your comiler
CC=$(LINUX_CC)
Now you will run against this error:
gcc -w -fhandle-exceptions -DUSE_INETD -DUNIX -DARCH_32 -I/usr/interbase/include -c
NetTCP.cpp -o NetTCP.o
NetTCP.cpp: In function `static int NetTCP::netOpen(int, int *, int)':
NetTCP.cpp:176: passing `int *' as argument 3 of `accept(int, sockaddr *, socklen_t
*)' changes signedness
make: *** [NetTCP.o] Error 1
So you can patch the NetTCP.cpp file:
again:
clilen = sizeof (tcpCliAddr);
//tmpSockfd = accept (sockfd, (struct sockaddr *) &tcpCliAddr, &clilen);
tmpSockfd = accept (sockfd, (struct sockaddr *) &tcpCliAddr, (unsigned int *)
&clilen);
//MW: cast to (unsigned int *) added to make it work with gcc ^^^^^^^^^^^^^^
if (tmpSockfd < 0) {
if (errno == EINTR) {
errno = 0;
goto again; /* probably a SIGCLD that was caught */
}
Error::err_sys ("accept error");
}
Now it comiles and you can bind it to your inetd. Great think, your first connect via
JDBC to interbase should be possible.
3.
But may you have an getMetaData problem.
A special interclient.jar should help. Thanks to David Jenks. I am not sure about his
modifications to this driver.
4.
So, Jboss start with this and create a XADataSource on startup. If you try to deploy
your entity-Bean an other problem follows. can t create PreparedStatement. Don t give
up at this point !
Get via CVS the latest JBoss. I think, it is a Minerva bug. Forgett all about jetty or
tomcat in your test installation. Try the default one. Add the XADatasource with
contribution to new minerava under
the jboss path. This looks like somehow like this:
<mbean code="org.jboss.jdbc.JdbcProvider" name="DefaultDomain:service=JdbcProvider">
<attribute
name="Drivers">org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,interbase.interclient.Driver</attribute>
</mbean>
<mbean code="org.jboss.jdbc.XADataSourceLoader"
name="DefaultDomain:service=XADataSource,name=InterBaseDB">
<attribute
name="DataSourceClass">org.jboss.pool.jdbc.xa.wrapper.XADataSourceImpl</attribute>
<attribute name="PoolName">InterBaseDS</attribute>
<attribute name="URL">jdbc:interbase://host.lan/opt/interbase/db/db.gdb</attribute>
<attribute name="JDBCUser">xxxx</attribute>
<attribute name="Password">xxxxx</attribute>
</mbean>
5.
Now run your new jboss and party !
Special thanks to David Jenks, who helped me more than one time.
Good luck for jboss project, one of the coolest server s I know. We use it in
combination with cocoon, xerces, JServ and Interbase. It is a dream team.
Thomas
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-user