how to store sessions in a database with jboss and tomcat

2004-02-16 Thread Hugo Kotsubo
Hi!
I'm using Jboss  3.2.1 with Tomcat 4.1.24, and Tomcat is running as a 
Jboss MBean.

I want to control the number of sessions each application can have. To 
do this, I'm trying to store
sessions in a postgresql database, and use the Tomcat PersistentManager 
Implementation.

The tomcat configuration is under the Jboss deploy directory, at the 
following path:

/opt/jboss/server/default/deploy/jbossweb-tomcat.sar/

In this directory I have all the jar files needed by tomcat, a web.xml 
file and a META-INF directory, with a manifest file and a 
jboss-service.xml file (shown below)

I guess that something is wrong with jboss-service.xml file, because 
almost everything works fine (the sessions are not being
stored in my database)
Can anyone help me?

thanks
Hugo Kotsubo
 

jboss-service.xml contents:

?xml version=1.0 encoding=UTF-8?
!-- The service configuration for the embedded Tomcat4.1.x web 
container--

server
mbean code=org.jboss.web.catalina.EmbeddedCatalinaService41
 name=jboss.web:service=WebServer
 attribute name=Java2ClassLoadingCompliancetrue/attribute
 !--
   ***
   ** CLUSTERING *
   ***
   In order to activate HTTP Session clustering for Tomcat
   make sure you run JBoss's all configuration i.e.
   run -c all
   (the default configuration doesn't contain clustering)
   Furthermore, you may change SnapshotMode and
   SnapshotInterval attributes below to indicate when to
   synchronize changes with the other node(s).
   If you use Apache+mod_jk(2) you will most probably use
   the AJP1.3 connector below. Thus, if you so wish,
   you may comment (i.e. deactivate) the HTTP connector
   as it won't be used anymore.
   ***
   ***
   ***
  --
!--
   If you are using clustering, the following two attributes
   define when the sessions are replicated to the other nodes.
   The default value, instant, synchronously replicates changes
   to the other nodes. In this case, the SnapshotInterval attribute
   is not used.
   The interval mode, in association with the SnapshotInterval
   attribute, indicates that Tomcat will only replicates modified
   sessions every SnapshotInterval miliseconds at most.
 --
 attribute name=SnapshotModeinstant/attribute !-- you may switch 
to interval --
 attribute name=SnapshotInterval2000/attribute
 attribute name=Config
   Server
  Service name = JBoss-Tomcat
 Engine name=MainEngine defaultHost=localhost
Logger className = org.jboss.web.catalina.Log4jLogger
   verbosityLevel = debug category = 
org.jboss.web.localhost.Engine/
Host name=localhost
   !-- Access logger --
   Valve className = 
org.apache.catalina.valves.AccessLogValve
  prefix = localhost_access suffix = .log
  pattern = common directory = 
${jboss.server.home.dir}/log /

   !-- Default context parameters --
   DefaultContext cookies = true crossContext = true 
override = true
   Manager 
className=org.apache.catalina.session.PersistentManager
debug=0 saveOnRestart=true 
maxActiveSessions=-1
minIdleSwap=-1 maxIdleSwap=-1 
maxIdleBackup=-1
 Store 
className=org.apache.catalina.session.JDBCStore 
driverName=org.postgresql.Driver

connectionURL=jdbc:postgresql://localhost:5432/hugo-bi?user=hugoamp;password=hugo 

sessionTable=tomcatsessions sessionIdCol=id
sessionDataCol=data sessionValidCol=valid 
sessionAppCol=appname
sessionMaxInactiveCol=maxinactive 
sessionLastAccessedCol=lastaccess
checkInterval=60 debug=99 /
   /Manager
   /DefaultContext
/Host
 /Engine

 !-- A HTTP/1.1 Connector on port 8080 --
 Connector className=org.apache.coyote.tomcat4.CoyoteConnector
port=8080 minProcessors=3 maxProcessors=10
enableLookups=true acceptCount=10 debug=0
connectionTimeout=2 useURIValidationHack=false /
 !-- A AJP 1.3 Connector on port 8009 --
 Connector className=org.apache.coyote.tomcat4.CoyoteConnector
port=8009 minProcessors=5 maxProcessors=75
enableLookups=true redirectPort=8443
acceptCount=10 debug=0 connectionTimeout=2
useURIValidationHack=false

protocolHandlerClassName=org.apache.jk.server.JkCoyoteHandler/
  /Service
   /Server
 /attribute
/mbean
/server

Jboss + Tomcat and Database Stored Sessions

2004-02-12 Thread Hugo Kotsubo


Hi!

I'm using Jboss  3.2.1 with Tomcat 4.1.24, and Tomcat is running as a 
Jboss MBean.

I want to control the number of sessions each application can have. To 
do this, I'm trying to store
sessions in a postgresql database, and use the Tomcat PersistentManager 
Implementation.

The tomcat configuration is under the Jboss deploy directory, at the 
following path:

/opt/jboss/server/default/deploy/jbossweb-tomcat.sar/

In this directory I have all the jar files needed by tomcat, a web.xml 
file and a META-INF directory, with a manifest file and a jboss-service.xml file (shown below)

I guess that something is wrong with one of the xml files.
Can anyone help me?
thanks
Hugo Kotsubo

jboss-service.xml contents:
?xml version=1.0 encoding=UTF-8?
!-- The service configuration for the embedded Tomcat4.1.x web container--
server
mbean code=org.jboss.web.catalina.EmbeddedCatalinaService41
  name=jboss.web:service=WebServer
  attribute name=Java2ClassLoadingCompliancetrue/attribute
  !--
***
** CLUSTERING *
***
In order to activate HTTP Session clustering for Tomcat
make sure you run JBoss's all configuration i.e.
run -c all
(the default configuration doesn't contain clustering)
Furthermore, you may change SnapshotMode and
SnapshotInterval attributes below to indicate when to
synchronize changes with the other node(s).
If you use Apache+mod_jk(2) you will most probably use
the AJP1.3 connector below. Thus, if you so wish,
you may comment (i.e. deactivate) the HTTP connector
as it won't be used anymore.
***
***
***
   --
   
  !--
If you are using clustering, the following two attributes
define when the sessions are replicated to the other nodes.
The default value, instant, synchronously replicates changes
to the other nodes. In this case, the SnapshotInterval attribute
is not used.
The interval mode, in association with the SnapshotInterval
attribute, indicates that Tomcat will only replicates modified
sessions every SnapshotInterval miliseconds at most.
  --

  attribute name=SnapshotModeinstant/attribute !-- you may 
switch to interval --
  attribute name=SnapshotInterval2000/attribute
  attribute name=Config
Server
   Service name = JBoss-Tomcat
  Engine name=MainEngine defaultHost=localhost
 Logger className = org.jboss.web.catalina.Log4jLogger
verbosityLevel = debug category = org.jboss.web.localhost.Engine/
 Host name=localhost
!-- Access logger --
Valve className = org.apache.catalina.valves.AccessLogValve
   prefix = localhost_access suffix = .log
   pattern = common directory = ${jboss.server.home.dir}/log /

!-- Default context parameters --
DefaultContext cookies = true crossContext = true override = 
true
Manager className=org.apache.catalina.session.PersistentManager
 debug=0 saveOnRestart=true maxActiveSessions=-1
 minIdleSwap=-1 maxIdleSwap=-1 maxIdleBackup=-1
  Store className=org.apache.catalina.session.JDBCStore 
driverName=org.postgresql.Driver
 
connectionURL=jdbc:postgresql://localhost:5432/hugo-bi?user=hugoamp;password=hugo
 sessionTable=tomcatsessions sessionIdCol=id
 sessionDataCol=data sessionValidCol=valid 
sessionAppCol=appname
 sessionMaxInactiveCol=maxinactive 
sessionLastAccessedCol=lastaccess
 checkInterval=60 debug=99 /
/Manager
/DefaultContext
 /Host
  /Engine
  !-- A HTTP/1.1 Connector on port 8080 --
  Connector className=org.apache.coyote.tomcat4.CoyoteConnector
 port=8080 minProcessors=3 maxProcessors=10
 enableLookups=true acceptCount=10 debug=0
 connectionTimeout=2 useURIValidationHack=false /
  !-- A AJP 1.3 Connector on port 8009 --
  Connector className=org.apache.coyote.tomcat4.CoyoteConnector
 port=8009 minProcessors=5 maxProcessors=75
 enableLookups=true redirectPort=8443
 acceptCount=10 debug=0 connectionTimeout=2
 useURIValidationHack=false
 protocolHandlerClassName=org.apache.jk.server.JkCoyoteHandler/
   /Service
/Server
  /attribute
/mbean
/server