-
This does work in cluster mode. Docs seem correct --ext-comp is deprecated.
http://docs.tigase.org/tigase-server/snapshot/Properties_Guide/html/#extComp
http://docs.tigase.org/tigase-server/snapshot/Properties_Guide/html/#external
-
Eric, we are not talking about the cluster mode. We are talking about non-clustered Tigase but with connection managers separate from SessionManager. This is more or less common use-case when you want to have parts of the system which keep critical data (database, SessionManager) in protected network (DMZ), while allowing for connectivity from the internet - connection managers.
In theory it should work as it was designed that way. But the last time I checked that configuration was maybe 5 or more years ago. A lot has changed since than and I am no longer sure if Tigase works that way. Therefore, please deploy Tigase in a following way:
-
Tigase with SessionManager, MessageArchive, MUC and PubSub on one machine
-
All connection managers: s2s, c2s, Bosh, Websockets on a different machine.
While you do this, please document all the configuration details so at the end of the task (assuming it is possible to run it that way) we have ready to use step-by-step guide.
-
-
Doesn't seem to work. Maybe I am doing something wrong. Here is what I did...
Running with --gen-config-sm on tpub.xmpp-test.net
init.properties:
config-type=--gen-config-sm --admins = admin@tpub.xmpp-test.net --virt-hosts = tpub.xmpp-test.net --debug=server,xmpp.impl,ext,muc,component --packet.debug.full=true basic-conf/logging/java.util.logging.FileHandler.limit=100000000 basic-conf/logging/java.util.logging.FileHandler.count=20 --auth-db = tigase-custom --auth-db-uri=jdbc:mysql://localhost/tpub?user=tigase&password=nonprivatethread --user-db=mysql --user-db-uri=jdbc:mysql://localhost/tpub?user=tigase&password=nonprivatethread&autoCreateUser=true --comp-name-1=ext --comp-class-1=tigase.server.ext.ComponentProtocol --external=t4.tigase.org:secret:listen:5678 bosh/concurrent-requests[I]=16
I've tried "listen" and "accept" on --external, don't see a difference.
The open ports look to be correct:
tigase@tpub.xmpp-test.net tigase-issue #7.0.0-SNAPSHOT-b3755/ $ lsof -i -P COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 28299 tigase 65u IPv6 23377332 0t0 TCP localhost:37780->localhost:3306 (ESTABLISHED) ... java 28299 tigase 84u IPv6 23377368 0t0 TCP localhost:37799->localhost:3306 (ESTABLISHED) java 28299 tigase 89u IPv6 23376870 0t0 TCP *:5678 (LISTEN) java 28299 tigase 90u IPv6 23376871 0t0 TCP *:5555 (LISTEN)
No exceptions in the logs, no mention of connection manager trying to connect.
For connection manager I'm using t4.tigase.org.
init.properties:
config-type=--gen-config-cs --admins = admin@tpub.xmpp-test.net --virt-hosts = tpub.xmpp-test.net --debug=server,xmpp.impl,ext,muc,component --packet.debug.full=true basic-conf/logging/java.util.logging.FileHandler.limit=100000000 basic-conf/logging/java.util.logging.FileHandler.count=20 --comp-name-1=ext --comp-class-1=tigase.server.ext.ComponentProtocol --external=tpub.xmpp-test.net:secret:connect:5678 --bind-ext-hostnames=t4.tigase.org bosh/concurrent-requests[I]=16
I don't see mention of trying to connect to tpub in logfiles. Tried with and without --bind-ext-hostnames. I know I will have to add the rest of the components but for now this should connect SessionManager. I see exceptions of this instance trying to connect to Derby DB. I removed DB "DRV" line from tigase.conf and it still happens.
2015-01-20 14:25:36.118 [main] DataRepositoryImpl.initRepository() INFO: Table schema found: jdbc:derby:tigase-derbydb;create=true, database type: derby, database driver: org.apache.derby.jdbc.EmbeddedDriver 2015-01-20 14:25:36.540 [main] DataRepositoryImpl.initRepository() INFO: Initialized database connection: jdbc:derby:tigase-derbydb;create=true 2015-01-20 14:25:36.540 [main] DataRepositoryImpl.initRepository() INFO: Table schema found: jdbc:derby:tigase-derbydb;create=true, database type: derby, database driver: org.apache.derby.jdbc.EmbeddedDriver 2015-01-20 14:25:36.542 [main] DataRepositoryImpl.initRepository() INFO: Initialized database connection: jdbc:derby:tigase-derbydb;create=true 2015-01-20 14:25:36.543 [main] DataRepositoryImpl.initRepository() INFO: Table schema found: jdbc:derby:tigase-derbydb;create=true, database type: derby, database driver: org.apache.derby.jdbc.EmbeddedDriver 2015-01-20 14:25:36.544 [main] DataRepositoryImpl.initRepository() INFO: Initialized database connection: jdbc:derby:tigase-derbydb;create=true 2015-01-20 14:25:36.544 [main] DataRepositoryImpl.initRepository() INFO: Table schema found: jdbc:derby:tigase-derbydb;create=true, database type: derby, database driver: org.apache.derby.jdbc.EmbeddedDriver 2015-01-20 14:25:36.546 [main] DataRepositoryImpl.initRepository() INFO: Initialized database connection: jdbc:derby:tigase-derbydb;create=true 2015-01-20 14:25:36.546 [main] DataRepositoryImpl.initRepository() INFO: Table schema found: jdbc:derby:tigase-derbydb;create=true, database type: derby, database driver: org.apache.derby.jdbc.EmbeddedDriver 2015-01-20 14:25:36.548 [main] DataRepositoryImpl.initRepository() INFO: Initialized database connection: jdbc:derby:tigase-derbydb;create=true 2015-01-20 14:25:36.548 [main] DataRepositoryImpl.initRepository() INFO: Table schema found: jdbc:derby:tigase-derbydb;create=true, database type: derby, database driver: org.apache.derby.jdbc.EmbeddedDriver 2015-01-20 14:25:36.549 [main] DataRepositoryImpl.initRepository() INFO: Initialized database connection: jdbc:derby:tigase-derbydb;create=true 2015-01-20 14:25:36.550 [main] DataRepositoryImpl.initRepository() INFO: Table schema found: jdbc:derby:tigase-derbydb;create=true, database type: derby, database driver: org.apache.derby.jdbc.EmbeddedDriver 2015-01-20 14:25:36.551 [main] DataRepositoryImpl.initRepository() INFO: Initialized database connection: jdbc:derby:tigase-derbydb;create=true 2015-01-20 14:25:36.551 [main] DataRepositoryImpl.initRepository() INFO: Table schema found: jdbc:derby:tigase-derbydb;create=true, database type: derby, database driver: org.apache.derby.jdbc.EmbeddedDriver 2015-01-20 14:25:36.553 [main] DataRepositoryImpl.initRepository() INFO: Initialized database connection: jdbc:derby:tigase-derbydb;create=true 2015-01-20 14:25:36.553 [main] DataRepositoryImpl.initRepository() INFO: Table schema found: jdbc:derby:tigase-derbydb;create=true, database type: derby, database driver: org.apache.derby.jdbc.EmbeddedDriver 2015-01-20 14:25:36.554 [main] DataRepositoryImpl.initRepository() INFO: Initialized database connection: jdbc:derby:tigase-derbydb;create=true 2015-01-20 14:25:36.554 [main] DataRepositoryImpl.initRepository() INFO: Table schema found: jdbc:derby:tigase-derbydb;create=true, database type: derby, database driver: org.apache.derby.jdbc.EmbeddedDriver 2015-01-20 14:25:36.556 [main] DataRepositoryImpl.initRepository() INFO: Initialized database connection: jdbc:derby:tigase-derbydb;create=true 2015-01-20 14:25:36.585 [main] ConfiguratorAbstract.setProperties() SEVERE: Can't initialize user default repository: tigase.db.DBInitException: Problem initializing jdbc connection: jdbc:derby:tigase-derbydb;create=true at tigase.db.jdbc.JDBCRepository.initRepository(JDBCRepository.java:612) at tigase.db.RepositoryFactory.getUserRepository(RepositoryFactory.java:660) at tigase.conf.ConfiguratorAbstract.addUserRepo(ConfiguratorAbstract.java:903) at tigase.conf.ConfiguratorAbstract.setProperties(ConfiguratorAbstract.java:832) at tigase.conf.ConfiguratorAbstract.setup(ConfiguratorAbstract.java:540) at tigase.conf.ConfiguratorAbstract.componentAdded(ConfiguratorAbstract.java:177) at tigase.conf.Configurator.componentAdded(Configurator.java:50) at tigase.conf.Configurator.componentAdded(Configurator.java:33) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:116) at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:131) at tigase.server.MessageRouter.setConfig(MessageRouter.java:603) at tigase.server.XMPPServer.start(XMPPServer.java:142) at tigase.server.XMPPServer.main(XMPPServer.java:112) Caused by: java.sql.SQLSyntaxErrorException: 'TIGGETDBPROPERTY' is not recognized as a function or procedure. at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source) at org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(Unknown Source) at tigase.db.jdbc.JDBCRepository.checkDBSchema(JDBCRepository.java:1020) at tigase.db.jdbc.JDBCRepository.initRepository(JDBCRepository.java:576) at tigase.db.RepositoryFactory.getUserRepository(RepositoryFactory.java:660) at tigase.conf.ConfiguratorAbstract.addUserRepo(ConfiguratorAbstract.java:903) at tigase.conf.ConfiguratorAbstract.setProperties(ConfiguratorAbstract.java:832) at tigase.conf.ConfiguratorAbstract.setup(ConfiguratorAbstract.java:540) at tigase.conf.ConfiguratorAbstract.componentAdded(ConfiguratorAbstract.java:177) at tigase.conf.Configurator.componentAdded(Configurator.java:50) at tigase.conf.Configurator.componentAdded(Configurator.java:33) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:116) at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:131) at tigase.server.MessageRouter.setConfig(MessageRouter.java:603) at tigase.server.XMPPServer.start(XMPPServer.java:142) at tigase.server.XMPPServer.main(XMPPServer.java:112) Caused by: java.sql.SQLException: 'TIGGETDBPROPERTY' is not recognized as a function or procedure. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source) at org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(Unknown Source) at tigase.db.jdbc.JDBCRepository.checkDBSchema(JDBCRepository.java:1020) at tigase.db.jdbc.JDBCRepository.initRepository(JDBCRepository.java:576) at tigase.db.RepositoryFactory.getUserRepository(RepositoryFactory.java:660) at tigase.conf.ConfiguratorAbstract.addUserRepo(ConfiguratorAbstract.java:903) at tigase.conf.ConfiguratorAbstract.setProperties(ConfiguratorAbstract.java:832) at tigase.conf.ConfiguratorAbstract.setup(ConfiguratorAbstract.java:540) at tigase.conf.ConfiguratorAbstract.componentAdded(ConfiguratorAbstract.java:177) at tigase.conf.Configurator.componentAdded(Configurator.java:50) at tigase.conf.Configurator.componentAdded(Configurator.java:33) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:116) at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:131) at tigase.server.MessageRouter.setConfig(MessageRouter.java:603) at tigase.server.XMPPServer.start(XMPPServer.java:142) at tigase.server.XMPPServer.main(XMPPServer.java:112) Caused by: ERROR 42Y03: 'TIGGETDBPROPERTY' is not recognized as a function or procedure. at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.impl.sql.compile.StaticMethodCallNode.bindExpression(Unknown Source) at org.apache.derby.impl.sql.compile.JavaToSQLValueNode.bindExpression(Unknown Source) at org.apache.derby.impl.sql.compile.ResultColumn.bindExpression(Unknown Source) at org.apache.derby.impl.sql.compile.ResultColumnList.bindExpressions(Unknown Source) at org.apache.derby.impl.sql.compile.RowResultSetNode.bindExpressions(Unknown Source) at org.apache.derby.impl.sql.compile.DMLStatementNode.bindExpressions(Unknown Source) at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(Unknown Source) at org.apache.derby.impl.sql.compile.CursorNode.bindStatement(Unknown Source) at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source) at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source) at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source) at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source) at org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(Unknown Source) at tigase.db.jdbc.JDBCRepository.checkDBSchema(JDBCRepository.java:1020) at tigase.db.jdbc.JDBCRepository.initRepository(JDBCRepository.java:576) at tigase.db.RepositoryFactory.getUserRepository(RepositoryFactory.java:660) at tigase.conf.ConfiguratorAbstract.addUserRepo(ConfiguratorAbstract.java:903) at tigase.conf.ConfiguratorAbstract.setProperties(ConfiguratorAbstract.java:832) at tigase.conf.ConfiguratorAbstract.setup(ConfiguratorAbstract.java:540) at tigase.conf.ConfiguratorAbstract.componentAdded(ConfiguratorAbstract.java:177) at tigase.conf.Configurator.componentAdded(Configurator.java:50) at tigase.conf.Configurator.componentAdded(Configurator.java:33) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:116) at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:131) at tigase.server.MessageRouter.setConfig(MessageRouter.java:603) at tigase.server.XMPPServer.start(XMPPServer.java:142) at tigase.server.XMPPServer.main(XMPPServer.java:112) 2015-01-20 14:25:36.589 [main] TigaseCustomAuth.getParamWithDef() CONFIG: Default query loaded for 'init-db-query': '{ call TigInitdb() }' 2015-01-20 14:25:36.599 [main] ConfiguratorAbstract.setProperties() SEVERE: Can't initialize auth default repository: tigase.db.DBInitException: Problem initializing jdbc connection: jdbc:derby:tigase-derbydb;create=true at tigase.db.jdbc.TigaseCustomAuth.initRepository(TigaseCustomAuth.java:548) at tigase.db.RepositoryFactory.getAuthRepository(RepositoryFactory.java:382) at tigase.conf.ConfiguratorAbstract.addAuthRepo(ConfiguratorAbstract.java:872) at tigase.conf.ConfiguratorAbstract.setProperties(ConfiguratorAbstract.java:849) at tigase.conf.ConfiguratorAbstract.setup(ConfiguratorAbstract.java:540) at tigase.conf.ConfiguratorAbstract.componentAdded(ConfiguratorAbstract.java:177) at tigase.conf.Configurator.componentAdded(Configurator.java:50) at tigase.conf.Configurator.componentAdded(Configurator.java:33) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:116) at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:131) at tigase.server.MessageRouter.setConfig(MessageRouter.java:603) at tigase.server.XMPPServer.start(XMPPServer.java:142) at tigase.server.XMPPServer.main(XMPPServer.java:112) Caused by: java.sql.SQLSyntaxErrorException: 'TIGINITDB' is not recognized as a function or procedure. at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedCallableStatement.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedCallableStatement20.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedCallableStatement30.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedCallableStatement40.<init>(Unknown Source) at org.apache.derby.jdbc.Driver40.newEmbedCallableStatement(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.prepareCall(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.prepareCall(Unknown Source) at tigase.db.jdbc.DataRepositoryImpl.prepareQuery(DataRepositoryImpl.java:451) at tigase.db.jdbc.DataRepositoryImpl.initStatement(DataRepositoryImpl.java:406) at tigase.db.jdbc.DataRepositoryImpl.initPreparedStatement(DataRepositoryImpl.java:204) at tigase.db.DataRepositoryPool.initPreparedStatement(DataRepositoryPool.java:163) at tigase.db.jdbc.TigaseCustomAuth.initRepository(TigaseCustomAuth.java:482) at tigase.db.RepositoryFactory.getAuthRepository(RepositoryFactory.java:382) at tigase.conf.ConfiguratorAbstract.addAuthRepo(ConfiguratorAbstract.java:872) at tigase.conf.ConfiguratorAbstract.setProperties(ConfiguratorAbstract.java:849) at tigase.conf.ConfiguratorAbstract.setup(ConfiguratorAbstract.java:540) at tigase.conf.ConfiguratorAbstract.componentAdded(ConfiguratorAbstract.java:177) at tigase.conf.Configurator.componentAdded(Configurator.java:50) at tigase.conf.Configurator.componentAdded(Configurator.java:33) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:116) at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:131) at tigase.server.MessageRouter.setConfig(MessageRouter.java:603) at tigase.server.XMPPServer.start(XMPPServer.java:142) at tigase.server.XMPPServer.main(XMPPServer.java:112) Caused by: java.sql.SQLException: 'TIGINITDB' is not recognized as a function or procedure. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedCallableStatement.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedCallableStatement20.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedCallableStatement30.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedCallableStatement40.<init>(Unknown Source) at org.apache.derby.jdbc.Driver40.newEmbedCallableStatement(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.prepareCall(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.prepareCall(Unknown Source) at tigase.db.jdbc.DataRepositoryImpl.prepareQuery(DataRepositoryImpl.java:451) at tigase.db.jdbc.DataRepositoryImpl.initStatement(DataRepositoryImpl.java:406) at tigase.db.jdbc.DataRepositoryImpl.initPreparedStatement(DataRepositoryImpl.java:204) at tigase.db.DataRepositoryPool.initPreparedStatement(DataRepositoryPool.java:163) at tigase.db.jdbc.TigaseCustomAuth.initRepository(TigaseCustomAuth.java:482) at tigase.db.RepositoryFactory.getAuthRepository(RepositoryFactory.java:382) at tigase.conf.ConfiguratorAbstract.addAuthRepo(ConfiguratorAbstract.java:872) at tigase.conf.ConfiguratorAbstract.setProperties(ConfiguratorAbstract.java:849) at tigase.conf.ConfiguratorAbstract.setup(ConfiguratorAbstract.java:540) at tigase.conf.ConfiguratorAbstract.componentAdded(ConfiguratorAbstract.java:177) at tigase.conf.Configurator.componentAdded(Configurator.java:50) at tigase.conf.Configurator.componentAdded(Configurator.java:33) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:116) at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:131) at tigase.server.MessageRouter.setConfig(MessageRouter.java:603) at tigase.server.XMPPServer.start(XMPPServer.java:142) at tigase.server.XMPPServer.main(XMPPServer.java:112) Caused by: ERROR 42Y03: 'TIGINITDB' is not recognized as a function or procedure. at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.impl.sql.compile.StaticMethodCallNode.bindExpression(Unknown Source) at org.apache.derby.impl.sql.compile.JavaToSQLValueNode.bindExpression(Unknown Source) at org.apache.derby.impl.sql.compile.CallStatementNode.bindStatement(Unknown Source) at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source) at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source) at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source) at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedCallableStatement.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedCallableStatement20.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedCallableStatement30.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedCallableStatement40.<init>(Unknown Source) at org.apache.derby.jdbc.Driver40.newEmbedCallableStatement(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.prepareCall(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.prepareCall(Unknown Source) at tigase.db.jdbc.DataRepositoryImpl.prepareQuery(DataRepositoryImpl.java:451) at tigase.db.jdbc.DataRepositoryImpl.initStatement(DataRepositoryImpl.java:406) at tigase.db.jdbc.DataRepositoryImpl.initPreparedStatement(DataRepositoryImpl.java:204) at tigase.db.DataRepositoryPool.initPreparedStatement(DataRepositoryPool.java:163) at tigase.db.jdbc.TigaseCustomAuth.initRepository(TigaseCustomAuth.java:482) at tigase.db.RepositoryFactory.getAuthRepository(RepositoryFactory.java:382) at tigase.conf.ConfiguratorAbstract.addAuthRepo(ConfiguratorAbstract.java:872) at tigase.conf.ConfiguratorAbstract.setProperties(ConfiguratorAbstract.java:849) at tigase.conf.ConfiguratorAbstract.setup(ConfiguratorAbstract.java:540) at tigase.conf.ConfiguratorAbstract.componentAdded(ConfiguratorAbstract.java:177) at tigase.conf.Configurator.componentAdded(Configurator.java:50) at tigase.conf.Configurator.componentAdded(Configurator.java:33) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:116) at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:131) at tigase.server.MessageRouter.setConfig(MessageRouter.java:603) at tigase.server.XMPPServer.start(XMPPServer.java:142) at tigase.server.XMPPServer.main(XMPPServer.java:112)
The log keeps repeating the following every 2 seconds:
2015-01-20 15:22:03.732 [scheduler_pool-5-thread-1-ext] ConnectionManager$1.run() FINE: Reconnecting service for component: ext, to remote host: null on port: 5678 2015-01-20 15:22:03.733 [scheduler_pool-6-thread-1-ext-comp] ConnectionManager$1.run() FINE: Reconnecting service for component: ext-comp, to remote host: ext-comp.localhost on port: 5555 2015-01-20 15:22:03.733 [ConnectionOpenThread] ConnectionManager$ConnectionListenerImpl.accept() FINEST: Accept called for service: null@null 2015-01-20 15:22:03.734 [ConnectionOpenThread] ConnectionManager$ConnectionListenerImpl.accept() FINEST: Problem reconnecting the service: null, type: connect, Socket: null, jid: null, cid: null@null 2015-01-20 15:22:03.734 [ConnectionOpenThread] ConnectionManager.reconnectService() FINER: Reconnecting service for: ext, scheduling next try in 2secs, cid: null@null 2015-01-20 15:22:03.734 [ConnectionOpenThread] ConnectionManager$ConnectionListenerImpl.accept() FINEST: Accept called for service: null@null 2015-01-20 15:22:03.734 [ConnectionOpenThread] ConnectionManager$ConnectionListenerImpl.accept() FINEST: Problem reconnecting the service: null, type: connect, Socket: null, jid: null, cid: null@null 2015-01-20 15:22:03.734 [ConnectionOpenThread] ConnectionManager.reconnectService() FINER: Reconnecting service for: ext-comp, scheduling next try in 2secs, cid: null@null
Changing init.properties to config-type=--gen-config-comp and adding muc component results in same Derby DB errors and this every 2 seconds:
2015-01-20 15:40:00.978 [scheduler_pool-3-thread-1-ext] ConnectionManager$1.run() FINE: Reconnecting service for component: ext, to remote host: null on port: 5678 2015-01-20 15:40:00.979 [ConnectionOpenThread] ConnectionManager$ConnectionListenerImpl.accept() FINEST: Accept called for service: null@null 2015-01-20 15:40:00.980 [ConnectionOpenThread] ConnectionManager$ConnectionListenerImpl.accept() FINEST: Problem reconnecting the service: null, type: connect, Socket: null, jid: null, cid: null@null 2015-01-20 15:40:00.980 [ConnectionOpenThread] ConnectionManager.reconnectService() FINER: Reconnecting service for: ext, scheduling next try in 2secs, cid: null@null 2015-01-20 15:40:02.980 [scheduler_pool-3-thread-1-ext] ConnectionManager$1.run() FINE: Reconnecting service for component: ext, to remote host: null on port: 5678 2015-01-20 15:40:02.981 [ConnectionOpenThread] ConnectionManager$ConnectionListenerImpl.accept() FINEST: Accept called for service: null@null 2015-01-20 15:40:02.981 [ConnectionOpenThread] ConnectionManager$ConnectionListenerImpl.accept() FINEST: Problem reconnecting the service: null, type: connect, Socket: null, jid: null, cid: null@null 2015-01-20 15:40:02.982 [ConnectionOpenThread] ConnectionManager.reconnectService() FINER: Reconnecting service for: ext, scheduling next try in 2secs, cid: null@null
I am following instructions at these URLs
http://docs.tigase.org/tigase-server/5.2.2/properties_guide/webhelp/configType.html
http://docs.tigase.org/tigase-server/5.2.0/admin_guide/html_chunk/_configuration_wizards.html
http://docs.tigase.org/tigase-server/5.2.2/properties_guide/webhelp/external.html
-
Wojciech, please verify the setup is possible at all in our current code. It does not have to use --gen-config-cs, --gen-config-sm. It may use any configuration combination that actually works. Please dedicate to this no more than 16 hours. If after this time you won't find a way, assign it back to me.
-
I was able to have such setup working (with working muc as an example component):
tigase@node1:~/tigase-server$ lsof -iTCP -P -n | grep 5678 java 22816 tigase 118u IPv6 8042196 0t0 TCP *:5678 (LISTEN) java 22816 tigase 119u IPv6 8042197 0t0 TCP 198.27.120.214:5678->198.27.120.215:59312 (ESTABLISHED)
tigase@node2:~/tigase-server$ lsof -iTCP -P -n | grep 5678 java 17756 tigase 68u IPv6 8115991 0t0 TCP 198.27.120.215:59312->198.27.120.214:5678 (ESTABLISHED)
Please note, this still uses the old
tigase.server.xmppcomponent.ComponentConnectionManager
(from--ext-comp@) instead of @tigase.server.ext.ComponentProtocol
entailed by @--external@.I've spend on this less then 16h limit (ca 3,5h) - should I spend remaining time on clarifying the documentation and/or rework it to use
tigase.server.ext.ComponentProtocol
and remove old solution altogether?EDIT:
configs for reference:
- node1:
tigase@node1:~/tigase-server$ cat etc/init.properties #config-type=--gen-config-def config-type=--gen-config-sm --ext-comp=xmpp-test.com,node2.xmpp-test.net,5678,very-secret,plain,accept --admins=admin@xmpp-test.net,admin@xmpp-test.org,admin@xmpp-test.biz,admin@xmpp-test.com --virt-hosts=xmpp-test.com,xmpp-test.biz --packet.debug.full=true --debug=debug,server,xmpp.impl,net,io,cluster basic-conf/logging/java.util.logging.FileHandler.limit=500000000 basic-conf/logging/java.util.logging.FileHandler.count=20 --auth-db=tigase-auth --user-db=mysql --user-db-uri=jdbc:mysql://db1.xmpp-test.net/tigasedb_cl1?user=tigase&password=tigase1442&autoCreateUser=true --comp-name-2 = muc --comp-class-2 = tigase.muc.MUCComponent
- node2:
tigase@node2:~/tigase-server$ cat etc/init.properties #config-type=--gen-config-def config-type=--gen-config-cs --ext-comp=xmpp-test.com,node1.xmpp-test.net,5678,very-secret,plain,connect --admins=admin@xmpp-test.net,admin@xmpp-test.org,admin@xmpp-test.biz,admin@xmpp-test.com --virt-hosts=xmpp-test.com,xmpp-test.biz --packet.debug.full=true --debug=debug,server,xmpp.impl,net,io,cluster basic-conf/logging/java.util.logging.FileHandler.limit=500000000 basic-conf/logging/java.util.logging.FileHandler.count=20 --auth-db=tigase.db.DummyRepository --user-db=tigase.db.DummyRepository #--user-db-uri=jdbc:mysql://db1.xmpp-test.net/tigasedb_cl1?user=tigase&password=tigase1442&autoCreateUser=true
-
Yes, please continue on this task. The most important thing is a documentation which describes step-by-step how to setup such a configuration. Using ext.ComponentProtocol is not critical but if it is not a lot of work, it would be good to have it, so we could drop the old implementation in the future versions.
Also, I think it is important that the SM server works in a cluster mode. This was not mentioned before, but this is what a customer would expect to have. CS server does not need to be in a cluster mode I think.
Type |
Task
|
Priority |
Minor
|
Assignee | |
RedmineID |
1478
|
Version |
Candidate for next major release
|
Spent time |
0
|
verify that the setup works correctly (in cluster environment?)
verify that correct external component is used for the connection (--ext-comp vs --external)