Tigase Forums

Installation and maintenance: RE: install-schema error

Tigase XMPP Server Board - Fri, 04/20/2018 - 08:14

As I said before - please use complete distribution binaries;

Categories: Tigase Forums

Installation and maintenance: RE: install-schema error

Tigase XMPP Server Board - Fri, 04/20/2018 - 02:42

wang xiaohui wrote:

D:\code\app\tig\tigase-server\server>java -cp "jars/*" tigase.db.util.SchemaManager "install-schema" -T mysql -D tigasedb -H localhost -U tigase_user -P tigase_pass -R root -A wang6727 -J admin@jabber.your-great.net -N pass Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: tigase/util/ui/console/CommandlineParameter at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateGetMethodRecursive(Class.java:3048) at java.lang.Class.getMethod0(Class.java:3018) at java.lang.Class.getMethod(Class.java:1784) at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) Caused by: java.lang.ClassNotFoundException: tigase.util.ui.console.CommandlineParameter at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 7 more

How to fix this problem? I've got the same

Categories: Tigase Forums

API and development: RE: I met error : Could not find artifact tigase:tigase-licence:pom:1.3.0-SN...

Tigase XMPP Server Board - Thu, 04/19/2018 - 09:42

Thank you for reporting this issue. I've just deployed missing artifact. Could you try to create Tigase XMPP Server distribution package once again to confirm that this issue is solved?

Categories: Tigase Forums

API and development: I met error : Could not find artifact tigase:tigase-licence:pom:1.3.0-SNAPSH...

Tigase XMPP Server Board - Thu, 04/19/2018 - 09:10

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Tigase XMPP Server Master project 8.0.0-SNAPSHOT ... SUCCESS [ 1.454 s]
[INFO] Tigase XMPP Server ................................. SUCCESS [ 48.374 s]
[INFO] Tigase XMPP Server Distribution builder 8.0.0-SNAPSHOT FAILURE [ 34.498 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:24 min
[INFO] Finished at: 2018-04-20T00:09:23+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project tigase-server-dist: Could not resolve dependencies for project tigase:tigase-server-dist:pom:8.0.0-SNAPSHOT: Failed to collect dependencies at tigase:licence-lib:jar:1.3.0-SNAPSHOT: Failed to read artifact descriptor for tigase:licence-lib:jar:1.3.0-SNAPSHOT: Could not find artifact tigase:tigase-licence:pom:1.3.0-SNAPSHOT in tigase (http://maven-repo.tigase.org/repository/release) -> [Help 1]
[ERROR]

Categories: Tigase Forums

Installation and maintenance: RE: install-schema error

Tigase XMPP Server Board - Wed, 04/11/2018 - 11:45
  • Exception in thread "main" java.lang.NoClassDefFoundError: tigase/util/ui/console/CommandlineParameter - missing dependencies: tigase-utils -- please use complete distribution binaries;
  • The server time zone value '�й���׼ʱ��' is unrecognized - do you use unicode? Could you set timezone on the server to UTC and try?
Categories: Tigase Forums

Installation and maintenance: RE: max number of vhost and default log

Tigase XMPP Server Board - Wed, 04/11/2018 - 11:35

Andrew Beni wrote:

Hi,
there is any kind of limit for the number ho vhost allowed?

At the moment I have about 1k virtual host and the initial log line is standard log is quite long

2018-04-04 19:22:50.111 [main] VHostManager.setProperties() WARNING: {first.domain.com=Domain: first.domain.com,
enabled: true,
anonym: false,
anonym: false,
register: false,
maxusers: 0,
tls: true,
s2sSecret: XXXX-XXX-XXX-xxx-xxxxxx,
domainFilter: LIST,
domainFilterDomains: xmpp.domain.com;first.domain.com,
c2sPortsAllowed: null,
saslAllowedMechanisms: null,

....

Entered #7304

only this line is about 400k! is possible to disable this log?

There is a configuration option to limit VHosts per owner JID:

vhost-man/domains-per-user-limit[I]=10
Categories: Tigase Forums

Installation and maintenance: RE: sess-man/Total queues overflow what does it means?

Tigase XMPP Server Board - Fri, 04/06/2018 - 15:14

Thank you for providing more information. However, before I can really suggest a good solution, I would need to know what you are going to accomplish. What functionality you need from the end-user point of view. Why do you have such a strange workflow - one user (admin or not) for communicating with thousands of other users. I am afraid that this kind of design/implementation will always have the weak point - admin user.

What if you have 100k online users? What if you have 1M online users? Will you still be able to handle this with above implementation? You know, traffic on a single user connection pool is one thing and then you will have to maintain roster (contact list) for 1M users. This is not how XMPP is designed to work. Even if you get it working it will be very hard to scale up. What would be the traffic at 1M online users?

I guess you need the roster just to know user's JIDs where you want to send messages from backendOUT. You also need to know presences of these users, to avoid sending messages to users who are not connected. Users are not interested in seeing the presence of the backendOUT so, you could reduce the traffic by having one-way presence subscription. Yes, this feature us available in XMPP spec, it is just a different subscription type. Instead of using subscription "both" you should have "from" and "to" or, if you want to completely disable presences you can have subscription "none". But then you do not know which users are online/offline, so you would be sending plenty of messages to offline users generating unnecessary traffic.

However, there are other ways, other than using a single user with a huge roster.

My guess is that you have some external third-party system which sends information to users/devices connected to the XMPP Server and which also collects information from all the connected users/devices. There are a few different ways you can do it correctly and efficiently in XMPP. The first thing I suggest you to explore is to use PubSub. It may seem complex and intimidating at first but it really is very simple thing. And it allows you to do your thing in an efficient, flexible and scalable way.

Instead of putting all users into a single huge roster, you can create PubSub channel (node) which can be uni directional or bi-directional communication channel. You can put as many users into a single channel as you want. You decide who can submit messages to the channel and who receives messages from the channel. Large PubSub channels can be distributed over many cluster nodes or you can even maintain multiple PubSub channels and assign smaller groups of users to each channel.

Categories: Tigase Forums

Installation and maintenance: RE: sess-man/Total queues overflow what does it means?

Tigase XMPP Server Board - Fri, 04/06/2018 - 04:10

Artur Hefczyc wrote:

Andrew Beni wrote:

Thanks for the explanation.

In my use case I have an admin user that can talk with all other users (about 30k growing), and all other users can talk only with the admin user. Do you think could be this the problem?

Yes, it could be a problem. You have 30k users (and growing) talking to a single user. So, you try to squeeze data from 30k connections into a single (or a pool of a few) connection(s). It may be simply not possible to fit data from 30k pipes into single pipe.
Even if you have pool of connections for the admin, are you certain that all connections in the pool are used not just one? Even if all connections in the pool are used are you certain that you can ready data quickly enough on the admin side to empty queues from 30k connections?
Even if you can, there are certain traffic limitations than can be handled on a single connection (or on handful connections).

The admin user connects to server with a pool of connections with different Resources. Instead the client has only one resource.

It could be a problem related to the roster? The admin user that can have big roster, there is any limit?

There are no limits but (or depending on the DB used there might be) for the roster size. However, the roster size greatly affects the traffic. Each time a new resource for the admin connects/disconnects to the server it generates instant traffic of 60k packets or so (it's 2x the size of the roster). I guess, this is the case when queues are being filled up. And the fact that you experience presence queue overflow confirms this.

Do you think I have to set some specific setting with this use case?

I do not know your specific use-case so it is impossible to suggest something. I would need to know what you are trying to accomplish, what is your use-case and I could suggest the most optimal solution.

Hi,
now is more clear, here some more info: the registered users are about 30k but the connected one are about 1k, this from tigase stats:

c2s/Open connections 913
sess-man/Open user connections 912
sess-man/Open user sessions 883

The use case is this:
- 2 admin users
1) backendOUT (send messages from our backend to users)
2) beckendIN (receive messages from users)
- 1k online users growing with 30k registered users growing

There is a pool of connections with different resources on the backendOUT user, I see via session manager all the backendOUT resources connected correctly to the server.

The users cannot talk each others they can only receive messages from backendOUT user and send messages to beckendIN user.

The main goal of the system is sending about 100 messages/second from backendOUT to users.

As you correctly said the overflow is related to presence messages, when a backendOUT connection is made to the server, for each resource (so each backend connection of the pool) are generated 2 x 30k packets, correct? Or 2 x 1k (online users) ?

This generate the presence overflow.

Since the users are not interested to view the online status of the backendOUT connection the lost packet shouldn't generate any particular problem, correct? Is possibile to completely disable the presence? But I think is in the XMPP standard so is not too easy to remove.

We are in a cluster mode, the presence is forwarded to all the cluster nodes? In our use case to you think is better to have a two different "type" of cluster node? Segregating the backend connections from the user connections? In this case the presence overflow will occur only on the nodes where the backend is connected, correct?

Categories: Tigase Forums

Installation and maintenance: RE: sess-man/Total queues overflow what does it means?

Tigase XMPP Server Board - Fri, 04/06/2018 - 00:19

Andrew Beni wrote:

is also possible to increase the queue size?

Yes but I strongly recommend you do NOT do it.
The queues sizes are automatically calculated and called based on the system you are running Tigase on, number of CPUs, amount of available memory and so on.
If you increase queue size, you may just end-up with OOM and system failure instead.

Categories: Tigase Forums

Installation and maintenance: RE: sess-man/Total queues overflow what does it means?

Tigase XMPP Server Board - Fri, 04/06/2018 - 00:17

Andrew Beni wrote:

Thanks for the explanation.

In my use case I have an admin user that can talk with all other users (about 30k growing), and all other users can talk only with the admin user. Do you think could be this the problem?

Yes, it could be a problem. You have 30k users (and growing) talking to a single user. So, you try to squeeze data from 30k connections into a single (or a pool of a few) connection(s). It may be simply not possible to fit data from 30k pipes into single pipe.
Even if you have pool of connections for the admin, are you certain that all connections in the pool are used not just one? Even if all connections in the pool are used are you certain that you can ready data quickly enough on the admin side to empty queues from 30k connections?
Even if you can, there are certain traffic limitations than can be handled on a single connection (or on handful connections).

The admin user connects to server with a pool of connections with different Resources. Instead the client has only one resource.

It could be a problem related to the roster? The admin user that can have big roster, there is any limit?

There are no limits but (or depending on the DB used there might be) for the roster size. However, the roster size greatly affects the traffic. Each time a new resource for the admin connects/disconnects to the server it generates instant traffic of 60k packets or so (it's 2x the size of the roster). I guess, this is the case when queues are being filled up. And the fact that you experience presence queue overflow confirms this.

Do you think I have to set some specific setting with this use case?

I do not know your specific use-case so it is impossible to suggest something. I would need to know what you are trying to accomplish, what is your use-case and I could suggest the most optimal solution.

Categories: Tigase Forums

Installation and maintenance: RE: install-schema error

Tigase XMPP Server Board - Thu, 04/05/2018 - 21:34

this is the parameter
"install-schema" -T mysql -D tigasedb -H localhost -U root -P wang6727 -R root -A wang6727 -J admin@jabber.your-great.net -N pass

Categories: Tigase Forums

Installation and maintenance: RE: install-schema error

Tigase XMPP Server Board - Thu, 04/05/2018 - 21:26

2018-04-06 12:25:21.266 [main] DBSchemaLoader.init() CONFIG: Parameters: [adminPassword: pass, admins: admin@jabber.your-great.net, dbHostname: localhost, dbName: tigasedb, dbPass: wang6727, dbRootPass: wang6727, dbRootUser: root, dbType: mysql, dbUser: root, file: null, ingoreMissingFiles: false, logLevel: CONFIG, query: null, serverTimezone: null, useLegacyDatetimeCode: false, useSSL: false, forceReloadSchema: false]
四月 06, 2018 12:25:26 下午 tigase.util.dns.DNSResolverDefault
警告: Resolving default host name: wxh took: 5,548
四月 06, 2018 12:25:26 下午 tigase.db.util.SchemaManager loadSchemas
信息: beginning loading schema files...
2018-04-06 12:25:27.645 [main] DBSchemaLoader.init() CONFIG: Parameters: [adminPassword: pass, admins: admin@jabber.your-great.net, dbHostname: localhost, dbName: tigasedb, dbPass: wang6727, dbRootPass: wang6727, dbRootUser: root, dbType: mysql, dbUser: root, file: null, ingoreMissingFiles: false, logLevel: CONFIG, query: null, serverTimezone: null, useLegacyDatetimeCode: false, useSSL: false, forceReloadSchema: false]
2018-04-06 12:25:27.646 [main] DBSchemaLoader.validateDBConnection() INFO: Validating DBConnection, URI: jdbc:mysql://localhost/?user=root&password=wang6727&useSSL=false&useLegacyDatetimeCode=false
2018-04-06 12:25:27.905 [main] DBSchemaLoader.validateDBConnection() WARNING: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
2018-04-06 12:25:27.905 [main] DBSchemaLoader.validateDBExists() WARNING: Connection not validated
四月 06, 2018 12:25:27 下午 tigase.db.util.SchemaManager loadSchemas
信息: schema loading finished!

Categories: Tigase Forums

Installation and maintenance: install-schema error

Tigase XMPP Server Board - Thu, 04/05/2018 - 21:24

D:\code\app\tig\tigase-server\server>java -cp "jars/*" tigase.db.util.SchemaManager "install-schema" -T mysql -D tigasedb -H localhost -U tigase_user -P tigase_pass -R root -A wang6727 -J admin@jabber.your-great.net -N pass
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: tigase/util/ui/console/CommandlineParameter
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: tigase.util.ui.console.CommandlineParameter
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more

Categories: Tigase Forums

Installation and maintenance: RE: TLSIO.writeBuff() Infinite loop detected and Queue overflow

Tigase XMPP Server Board - Thu, 04/05/2018 - 03:13

I wouldn't say that this is a client issue, but it may be caused by a lot of data being sent to the client while client connection is poor/slow or client is unable to read data from the socket in a timely manner. It may be also caused by a lot of packets being sent to the single client or a small number of packets which are huge.

However, I've also seen those entries in some cases when the old version of OpenSSL was used by the client.

You mentioned that you were making a stress test. Was it done on the same installation? If so, are you sure that all old messages from the stress test were delivered so they are not generating this traffic?

Categories: Tigase Forums

Installation and maintenance: max number of vhost and default log

Tigase XMPP Server Board - Wed, 04/04/2018 - 12:59

Hi,
there is any kind of limit for the number ho vhost allowed?

At the moment I have about 1k virtual host and the initial log line is standard log is quite long

2018-04-04 19:22:50.111 [main] VHostManager.setProperties() WARNING: {first.domain.com=Domain: first.domain.com,
enabled: true,
anonym: false,
anonym: false,
register: false,
maxusers: 0,
tls: true,
s2sSecret: XXXX-XXX-XXX-xxx-xxxxxx,
domainFilter: LIST,
domainFilterDomains: xmpp.domain.com;first.domain.com,
c2sPortsAllowed: null,
saslAllowedMechanisms: null,

....

only this line is about 400k! is possible to disable this log?

Thanks

Categories: Tigase Forums

Installation and maintenance: RE: sess-man/Total queues overflow what does it means?

Tigase XMPP Server Board - Wed, 04/04/2018 - 12:55

Thanks for the explanation.

In my use case I have an admin user that can talk with all other users (about 30k growing), and all other users can talk only with the admin user. Do you think could be this the problem?

The admin user connects to server with a pool of connections with different Resources. Instead the client has only one resource.

It could be a problem related to the roster? The admin user that can have big roster, there is any limit?

Do you think I have to set some specific setting with this use case?

Thanks

Categories: Tigase Forums

Installation and maintenance: RE: sess-man/Total queues overflow what does it means?

Tigase XMPP Server Board - Wed, 04/04/2018 - 12:37

This might be a problem. But not on the server. More for users.

What it means, is, the server could not handle the load and dropped some packets. Presence packets in this case. Dropped packets are lost and not delivered to the end-user. So this is why this might be a problem for your users - they do not get the presence information about their contacts.

Tigase is prepare for periodic traffic spikes and it keeps packets (messages, presences and other) in queues. Normally all the queues are being emptied right away, however, during spike traffic time, the queue may grow as the processing/delivering is slower than incoming traffic. If the traffic spike is short, then the queue is emptied later after the traffic is back to normal. However, when the traffic spike lasts longer, the queue grows too much and it could consume all the available memory. Therefore, Tigase has limits on the max size of each queue. When the max size is reached, subsequent packets are dropped and it "queue overflow" counter is increased.

There are many ways to avoid queue overflow but the best solution really depends on why this happens on your installation.

Categories: Tigase Forums

Installation and maintenance: sess-man/Total queues overflow what does it means?

Tigase XMPP Server Board - Wed, 04/04/2018 - 06:17

Hi,
looking at the stats I found:

sess-man/Processor: presence-state = , Queue: 0, AvTime: 1, Runs: 148685, Lost: 12063;
sess-man/Total queues overflow = 12063;
total/Total queues overflow = 12063;

what does it means exactly this overflow? Can produce some problem on the server?

thanks

Categories: Tigase Forums

Pages

Get in touch

We provide software products, consulting and custom development services

Tigase, Inc.
100 Pine Street, Suite 1250
San Francisco, CA 94111, USA
Phone: (415) 315 9771

Follow us on:

Twitter

  • Good question. We will get back to that this week. 4 days 1 hour ago
  • Please elaborate what are atmospheric sensors? 4 days 7 hours ago
Back to Top