ejabberd not storing unacknowledged messages to offline storage - xmpp

I'm running Ejabberd 15.07.33 on Ubuntu Server 14.04. I'm using the basic configuration, just added mod_offline_post (from mod_interact). I've read about dead connections problem and how to overcome it, but this post on ejabberd website (https://www.ejabberd.im/faq/tcp) says that unacknowledged messages should end up in offline storage, which is not the case in my situation. is there any special config that I should set to let this happen? I've tried to set `resend_on_timeout but didn't change anything.
Thanks for your help.

Sorry, I figured out that I should enable Stream Management XEP-0198 from client side too. I'm using Smack 4.1 and I enabled it by adding these line to my code.
static {
XMPPTCPConnection.setUseStreamManagementDefault(true);
XMPPTCPConnection.setUseStreamManagementResumptiodDefault(true);
}

Related

Mirth Connect send old messages when changing server

I have a Mirth application installed in Ubuntu server. I try to move the application from one server to another server (DRC server). When I moved the application, somehow the Mirth keep sending old messages to the channel.
The source of sending channel is using Database Reader and connecter type for destinations is using TCP Sender. Im using Mirth Connect version 3.5.2
Does anyone know why this is happening. Is there any log files that I need to clear when moving the application from one server to another?
This can happen for several reasons. Application logic, queued messages. My guess is you moved appdata directory along with installation, if so you must be seeing similar stats from where you moved.
Mirth stores all channels information, transactions etc. by default under appdata folder. If you are using default settings it'll use derby db. You can connect to that DB with any DB client support JDBC. i.e.
SQuirelL or DB Visualizer and that can give you an idea what's happening.
I recommend you to make a clear setup. Then, you can export/import your channels into your new environment. You can also consider using any other DB, oracle/sqlserver/mysql.. for Mirth. Current version is 3.9.10 and it has better support for DBs other than derby.
As mentioned in the comments your application logic also matters.

Is it possible to issue log messages from Neko to Apache logs?

When using the nekotools server for development, I get all messages in the console. Is it be possible to activate those messages in Apache logs on a server, for debugging purposes?
Answering own question since no answers yet.
In Haxe API I found neko.Web.logMessage(msg:String):Void, it allows sending custom messages to the webserver file logs. Not exactly what I was looking for though.

How to trace MSMQ?

I have an agent and a server in different domains. The server acts as an MSMQ server and the agent acts as an MSMQ client. I am using the mqsender utility, which is part of the MSMQ tools.
My problem is that a message is not delivered when using the HTTP:// format string (the MSMQ is installed with HTTP support). Using the OS: format string works fine.
When using HTTP the messages are immediately moved to the Dead Letter queue and the Class is set to Unknown, so I do not know the reasons for this behaviour.
So, this works:
mqsender.exe /c:10 /j:dead /f:Direct=OS:il-mark-w2k3\private$\test
And this does not:
mqsender.exe /c:10 /j:dead /f:Direct=http://il-mark-w2k3/msmq/private$/test
I checked that MSMQ virtual directory exists. How can I trace the MSMQ operation to try and understand what is going on?
Thanks.
EDIT
All the commands work as expected when ran locally on the server.
Navigating to http://il-mark-w2k3/msmq/private$/test in the browser on the agent (and the server) results in 501 - Header values specify a method that is not implemented. The same error is received when navigating to http://il-mark-w2k3/msmq. I suppose that is OK, after all it is not 404 - Not Found, right?
EDIT2
I have succeeded to resolve the issue. IIS lacked Anonymous Authentication, it became obvious from observing its log - 401.2 HTTP error was there. All worked well after it was enabled. The mistery remains why did MSMQ display Class Unknown on the dead messages? On other machine the same setup produces Error : 401, which makes much more sense.
The logging for MSMQ is internal so you won't easily be able to see exactly why the message didn't get delivered without raising a support case with Microsoft.
I have a few blog posts on solving various MSMQ/HTTP issues.
The 17 entitled "MSMQ messages using HTTP just won't get delivered" may help.
Also make sure you check the IIS logs for information.
Cheers
John Breakwell

Is it actually possible to connect to ActiveMQ via XMPP and query/browse queues using "AciveMQ.Agent chatroom" feature?

I tried what I think are 4 most popular XMPP (aka "Jabber")
clients (Spark, Pidgin, Psi, Pandion) to connect to ActiveMQ instance (Apache ActiveMQ ver. 5.3.0)
on XMMP connector with an idea to use the "AciveMQ.Agent chatroom" for querying queues/etc
and no success at all
Some of them fail with 'Unknown error', some don't fail but kind of "hang"...
interestingly, some communication does indeed reach the ActiveMQ side, because when I close a client it spits an exception "could not close" or something to that effect...
and if I try "register new user" option (present on most clients" the ActiveMQ also spits some most cryptic warning message
But I was never able to get to the point when I could see or specify "ActiveMQ.Agent" as chatroom and issue any commands...
Before I waste any more time on this curious feature, I would like to hear whether anyone had any success with it?
Thank you!
PS: BTW, the book "ActiveMQ in Action book"
http://www.manning.com/snyder/
shows that it is apparently works and is very easy using some Mac client (AdiumX), but I wanted it on a Windows PC ;)
This is for 2.0.0 linux version:
http://www.igniterealtime.org/downloadServlet?filename=spark/spark_2_0_0.tar.gz
Did you try Spark 2.0.0?
As far as I remember there was some bug in 2.5.x versions.
There's a "Jabber clients compatibility" section here:
http://activemq.apache.org/xmpp.html#XMPP-Jabberclientscompatibility
It'd be great to document more of them (specify problems and workarounds).
I'll try to find some time these days to test on windows. Any help is appreciated.
Topics work perfectly for me following http://activemq.apache.org/xmpp.html with ActiveMQ 5.5 and Spark 2.0. But so far I can't figure out how to connect to queues - maybe not possible.

MSMQ - Create and Send Message

I have a public queue created in a remote machine. I am able to access the queue, create a message and send it from my workstation. However, when I access the remote machine that hosts the message queue, I do not see any messages. Any ideas on what I am missing? Is there anything that need to be configured to receive messages?
You should check the security settings on the remote queue - the default setting for any account is "allow sending only".
I got it to work by removing MessageQueueTransactionType.Single from MessageQueue.Send(message,MessageQueueTransactionType.Single) method.
It Seems like there was a mismatch between the Transaction types. I am still not familiar how the transaction types work.