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

Re: [xmlblaster] reconnect after server crash



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'/>

                <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
> > 
> > 
> > 
> > 
> >