[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [xmlblaster] reconnect after server crash



Kevin Priebe wrote:
Here's everything I have.

xmlBlaster.properties
#------------------------------------------------------------------------------
# Authentication and Authorization
Security.Server.Plugin[simple][1.0]=org.xmlBlaster.authentication.plugins.simple.Manager
Security.Server.Plugin[htpasswd][1.0]=org.xmlBlaster.authentication.plugins.htpasswd.Manager

Security.Server.Plugin.htpasswd.secretfile=${user.dir}${file.separator}xmlBlaster.htpasswd

Security.Client.Plugin[simple][1.0]=org.xmlBlaster.authentication.plugins.simple.ClientPlugin
Security.Client.Plugin[htpasswd][1.0]=org.xmlBlaster.authentication.plugins.htpasswd.ClientPlugin
#------------------------------------------------------------------------------

CbProtocolPlugin[XMLRPC][1.0]=org.xmlBlaster.protocol.xmlrpc.CallbackXmlRpcDriver
CbProtocolPlugin[LOCAL][1.0]=org.xmlBlaster.protocol.local.CallbackLocalDriver
CbProtocolPlugin[JDBC][1.0]=org.xmlBlaster.protocol.jdbc.CallbackJdbcDriver
#------------------------------------------------------------------------------

plugin/xmlrpc/port=8081

#------------------------------------------------------------------------------
# On client side only
# Register the client side protocol plugin to connect to server
ClientProtocolPlugin[XMLRPC][1.0]=org.xmlBlaster.client.protocol.xmlrpc.XmlRpcConnection
ClientProtocolPlugin[LOCAL][1.0]=org.xmlBlaster.client.protocol.local.LocalConnection

# Register the client side callback server plugins:
ClientCbServerProtocolPlugin[XMLRPC][1.0]=org.xmlBlaster.client.protocol.xmlrpc.XmlRpcCallbackServer
ClientCbServerProtocolPlugin[LOCAL][1.0]=org.xmlBlaster.client.protocol.local.LocalCallbackImpl
#------------------------------------------------------------------------------

#------------------------------------------------------------------------------
# Customize dispatcher plugin
dispatch/connection/DispatchPlugin/defaultPlugin=undef
dispatch/callback/DispatchPlugin/defaultPlugin=undef
#------------------------------------------------------------------------------

#------------------------------------------------------------------------------
# MsgDistributor Plugin configuration
MsgDistributorPlugin[ConsumableQueue][1.0]=org.xmlBlaster.engine.distributor.plugins.ConsumableQueuePlugin

MsgDistributorPlugin/defaultPlugin=undef,1.0

#------------------------------------------------------------------------------
JdbcStorage[HSQLDatabaseEngine]=org.xmlBlaster.util.queue.jdbc.JdbcQueueCommonTablePlugin,\
url=jdbc:hsqldb:${user.dir}${file.separator}db${file.separator}$_{xmlBlaster_uniqueId},\
user=sa,\
password=,\
connectionPoolSize=1,\
connectionBusyTimeout=90000,\
maxWaitingThreads=300,\
tableNamePrefix=XB_,\
entriesTableName=ENTRIES,\
dbAdmin=true


StoragePlugin[JDBC][1.0]=${JdbcStorage[HSQLDatabaseEngine]}
StoragePlugin[RAM][1.0]=org.xmlBlaster.engine.msgstore.ram.MapPlugin
StoragePlugin[CACHE][1.0]=org.xmlBlaster.engine.msgstore.cache.PersistenceCachePlugin,persistentQueue=JDBC,transientQueue=RAM
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------ # Declare existing queue implementation plugins # SEE: http://www.xmlBlaster.org/xmlBlaster/doc/requirements/engine.queue.html QueuePlugin[JDBC][1.0]=${JdbcStorage[HSQLDatabaseEngine]}

QueuePlugin[RAM][1.0]=org.xmlBlaster.util.queue.ram.RamQueuePlugin
QueuePlugin[CACHE][1.0]=org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin,persistentQueue=JDBC,transientQueue=RAM
#------------------------------------------------------------------------------

#------------------------------------------------------------------------------
# Customize queue and persistence properties
queue/history/maxEntriesCache = 10
queue/history/maxEntries = ${queue/history/maxEntriesCache}

queue/callback/maxEntriesCache = 1000
queue/callback/maxEntries = ${queue/callback/maxEntriesCache}

# How big is the topic cache for messages of same oid (here your message
content occupies the memory)
persistence/msgUnitStore/maxEntriesCache = 10000
persistence/msgUnitStore/maxEntries = 100000000
persistence/msgUnitStore/maxBytesCache = 2097152
persistence/msgUnitStore/maxBytes = 2147483647

# Tail back queue on client side (contains the real data of all message
types)
queue/connection/maxEntriesCache = 1000
queue/connection/maxEntries = 10000000
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------ JdbcDriver.drivers=org.hsqldb.jdbcDriver:\ sun.jdbc.odbc.JdbcOdbcDriver JdbcDriver.mapping[HSQLDatabaseEngine]=string=VARCHAR,longint=BIGINT,int=INTEGER,blob=BINARY,boolean=CHAR

#------------------------------------------------------------------------------
MimeAccessPlugin[ContentLenFilter][1.0]=org.xmlBlaster.engine.mime.demo.ContentLenFilter
MimeAccessPlugin[GnuRegexFilter][1.0]=org.xmlBlaster.engine.mime.regex.GnuRegexFilter
MimeAccessPlugin[XPathFilter][1.0]=org.xmlBlaster.engine.mime.xpath.XPathFilter
MimeAccessPlugin[Sql92Filter][1.0]=org.xmlBlaster.engine.mime.sql92.Sql92Filter
#------------------------------------------------------------------------------

#------------------------------------------------------------------------------
# Customize clustering
LoadBalancerPlugin[RoundRobin][1.0]=org.xmlBlaster.engine.cluster.simpledomain.RoundRobin
MapMsgToMasterPlugin[DomainToMaster][1.0]=org.xmlBlaster.engine.cluster.simpledomain.DomainToMaster,DEFAULT_DOMAIN=dummy
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------ # Customize invocation recorder to queue tail back messages RecorderPlugin[FileRecorder][1.0]=org.xmlBlaster.util.recorder.file.FileRecorder RecorderPlugin[RamRecorder][1.0]=org.xmlBlaster.util.recorder.ram.RamRecorder #------------------------------------------------------------------------------


#------------------------------------------------------------------------------ # Telnet access to xmlBlaster for administration admin.remoteconsole.port=2702 admin.remoteconsole.sessionTimeout=600000 #------------------------------------------------------------------------------

#------------------------------------------------------------------------------
# Pluggable Loggers
LoggableDevicePlugin[file][1.0]=org.xmlBlaster.util.log.FileLogDeviceFactory,logFile=${user.dir}${file.separator}log${file.separator}xb.log
logDevice=file
#------------------------------------------------------------------------------

#------------------------------------------------------------------------------
# When an XmlBlasterException is thrown, how to format the getMessage()
string, see:
XmlBlasterException.logFormat=XmlBlasterException errorCode=[{0}]
serverSideException={3} location=[{2}] message=[{4} : {8}] [See URL {9}]

LogFormat=[{0} {1}] {3}
#------------------------------------------------------------------------------


#------------------------------------------------------------------------------ LogFormat.Date=MEDIUM LogFormat.Time=MEDIUM

#------------------------------------------------------------------------------
#
# JAXP parsers. Currently only crimson is actually possible to use.
#
javax.xml.parsers.SAXParserFactory=org.apache.crimson.jaxp.SAXParserFactoryImpl
javax.xml.parsers.DocumentBuilderFactory=org.apache.crimson.jaxp.DocumentBuilderFactoryImpl
#------------------------------------------------------------------------------




Here's xmlBlasterPlugins.xml

<xmlBlaster>

   <!--========== SubscriptionPersistencePlugin =============-->
   <plugin id='subPersistence'
className='org.xmlBlaster.engine.SessionPersistencePlugin'>
      <action do='LOAD' onStartupRunlevel='3' sequence='1' />
      <action do='STOP' onShutdownRunlevel='2' sequence='6'/>
   </plugin>

   <!--============= PROTOCOL PLUGINS ================-->

<!--
ProtocolPlugin[XMLRPC][1.0]=org.xmlBlaster.protocol.xmlrpc.XmlRpcDriver
-->
<plugin id='XMLRPC'
className='org.xmlBlaster.protocol.xmlrpc.XmlRpcDriver'>
<action do='LOAD' onStartupRunlevel='3' sequence='4'/> <action do='STOP' onShutdownRunlevel='2' sequence='3'/> </plugin>




<!--========== NATIVE SERVICE PLUGINS =============-->
<!--
ProtocolPlugin[JDBC][1.0]=org.xmlBlaster.protocol.jdbc.JdbcDriver -->
<plugin id='JDBC'
className='org.xmlBlaster.protocol.jdbc.JdbcDriver'>
<action do='LOAD' onStartupRunlevel='5' sequence='5' />
<action do='STOP' onShutdownRunlevel='4' sequence='1'/> </plugin>
<!--===============================================-->


</xmlBlaster>



and my connect qos:

<qos>
	<securityService type='htpasswd' version='1.0'>
	        <user>$user</user>
                <passwd>$password</passwd>
        </securityService>
	<local>false</local>

        <session name='$user/3' timeout='$timeout' maxSessions='1'
clearSessions='true' reconnectSameClientOnly='false'/>

Could you try to change

  clearSessions='false'

Does it help?

regards

Marcel


<queue relating='subject' maxEntries='5000' maxBytes='4000000' onOverflow='deadMessage' /> <queue relating='callback' maxEntries='5000' maxBytes='4000000' onOverflow='deadMessage'> <callback type='XMLRPC' retries='-1' delay='5000' oneway='false' dispatchPlugin='undef'> $cb </callback> </queue> <duplicateUpdates>false</duplicateUpdates> <persistent /> </qos>

I've tried hardcoding the paths in .properties thinking it might just
not find the password file, but still the same errors.  Another thing I
just noticed is that when I start xmlBlaster up when QManager is not
running, the same errors are given.

Hopefully that all helps,
Kevin



On Thu, 2004-11-11 at 04:44, Michele Laghi wrote:

Hi Kevin,
I tried several different combinations and was not able to reproduce the error you described.


Could you provide us with your:

xmlBlaster.properties file (server- and client side if you have several),

xmlBlasterPlugins.xml and command lines

and additionally which settings you have hardcoded in your ConnectQos ?

Regards
Michele


Kevin Priebe wrote:

Hi, we're having a problem with agents reconnecting after the xmlBlaster
server is restarted.

The problem seems to only happen when we use the htpasswd file.  We have
an agent called QManager authenticated through htpasswd and listening
for messages.

We then shutdown the server and restart while QManager is still
running.  QManager does not get any messages after this and we get these
errors while xmlBlaster is starting up:

[Nov 10, 2004 2:18:14 PM WARN ] Access is denied: XmlBlasterException
errorCode=[user.security.authentication.accessDenied]
serverSideException=true location=[Session] message=[Authentication of
user QManager failed : ] [See URL
http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.errorcodes.listing.html#user.security.authentication.accessDenied]

[Nov 10, 2004 2:18:14 PM WARN ] DEBUG ONLY: The server is in run level
STANDBY_PRE and not ready for connect():
errorCode=user.security.authentication.accessDenied
message=Authentication of user QManager failed

[Nov 10, 2004 2:18:14 PM WARN ] startupPlugins. Exception when loading
the plugin 'subPersistence' reason:
errorCode=resource.configuration.pluginFailed message=Initializing of
plugin subPersistence failed:XmlBlasterException
errorCode=[communication.noConnection.serverDeny]
serverSideException=true location=[AvailabilityChecker] message=[The
server is in run level STANDBY_PRE and not ready for connect() :
errorCode=user.security.authentication.accessDenied
message=Authentication of user QManager failed] [See URL
http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.errorcodes.listing.html#communication.noConnection.serverDeny]


I guess it's not ready to be connected to when it's starting up, but it never does connect. We don't have this problem when not using the password file.

We are still using xmlBlaster 0.91 and everything possible is set to be persistent. Thanks for any help.

Kevin










--
http://www.xmlBlaster.org