[JDEV] Component failing to push new roster information to client
Mike Prince
mike at mikeprince.com
Wed Nov 27 20:31:17 CST 2002
I'm getting a 503 (Service unavailable) when I try to push a new roster
to a client that's online and available. In short I'd like to "force"
new users onto a client.
Why am I getting this error?
Here's the low-down...
1) Running JabberD 1.4.2 on XP (argh)
2) Java Component connects up, handshakes, and successfully issues
<xdb from="realtime" to="exodus at localhost" id="1" type="set"
ns="jabber:iq:roster">
<query xmlns="jabber:iq:roster">
<item jid="woman at localhost" subscription="both" name="woman">
<group>group</group>
</item>
<item jid="carol at localhost" subscription="both" name="carol">
<group>group</group>
</item>
<item jid="man at localhost" subscription="both" name="Mann">
<group>Snowsports</group>
</item>
</query>
</xdb>
3) I then try to push the roster to the client (yes, it's connected and
available)
<iq from="realtime" to="exodus at localhost" id="2" type="set">
<query xmlns="jabber:iq:roster">
<item jid="woman at localhost" subscription="both"
name="woman">
<group>group</group>
</item>
<item jid="carol at localhost" subscription="both"
name="carol">
<group>group</group>
</item>
<item jid="man at localhost" subscription="both"
name="Mann">
<group>Snowsports</group>
</item>
</query>
</iq>
4) Which generates this error
<iq from='exodus at localhost' to='realtime' id='2' type='error'>
<query xmlns='jabber:iq:roster'>
<item jid='woman at localhost' subscription='both'
name='woman'>
<group>group</group>
</item>
<item jid='carol at localhost' subscription='both'
name='carol'>
<group>group</group>
</item>
<item jid='man at localhost' subscription='both'
name='Mann'>
<group>Snowsports</group>
</item>
</query>
<error code='503'>Service Unavailable</error>
</iq>
5) From JabberD, the debug shows...
Wed Nov 27 18:08:51 2002 modules.c:135 mapi_call 1
Wed Nov 27 18:08:51 2002 modules.c:158 MAPI A08CF68
Wed Nov 27 18:08:51 2002 modules.c:158 MAPI A08CFF8
Wed Nov 27 18:08:51 2002 modules.c:158 MAPI A08D1C8
Wed Nov 27 18:08:51 2002 modules.c:158 MAPI A08D960
Wed Nov 27 18:08:51 2002 modules.c:175 mapi_call returning unhandled
Wed Nov 27 18:08:51 2002 deliver.c:257
deliver(to[realtime],from[exodus at localho
st],type[4],packet[<iq from='exodus at localhost' to='realtime' id='2'
type='error'
><query xmlns='jabber:iq:roster'><item jid='woman at localhost'
subscription='both'
name='woman'><group>group</group></item><item jid='carol at localhost'
subscriptio
n='both' name='carol'><group>group</group></item><item
jid='man at localhost' subsc
ription='both'
name='Mann'><group>Snowsports</group></item></query><error code='
503'>Service Unavailable</error></iq>])
Wed Nov 27 18:08:51 2002 deliver.c:474 DELIVER 1:realtime <iq
from='exodus at loca
lhost' to='realtime' id='2' type='error'><query
xmlns='jabber:iq:roster'><item j
id='woman at localhost' subscription='both'
name='woman'><group>group</group></item
><item jid='carol at localhost' subscription='both'
name='carol'><group>group</grou
p></item><item jid='man at localhost' subscription='both'
name='Mann'><group>Snowsp
orts</group></item></query><error code='503'>Service
Unavailable</error></iq>
Wed Nov 27 18:08:51 2002 deliver.c:678 delivering to instance
'realtime'
Wed Nov 27 18:08:51 2002 mio.c:1054 mio_write called on x: A199E60
buffer: (nul
l)
Wed Nov 27 18:08:51 2002 mtq A0DF658 leaving to pth
Wed Nov 27 18:08:51 2002 mio.c:607 mio while loop top
Wed Nov 27 18:08:51 2002 mio.c:620 mio while loop, working
Wed Nov 27 18:08:51 2002 mio.c:279 write_dump writing data: <iq
from='exodus at lo
calhost' to='realtime' id='2' type='error'><query
xmlns='jabber:iq:roster'><item
jid='woman at localhost' subscription='both'
name='woman'><group>group</group></it
em><item jid='carol at localhost' subscription='both'
name='carol'><group>group</gr
oup></item><item jid='man at localhost' subscription='both'
name='Mann'><group>Snow
sports</group></item></query><error code='503'>Service
Unavailable</error></iq>
Wed Nov 27 18:08:51 2002 mio.c:607 mio while loop top
Wed Nov 27 18:09:06 2002 jabberd.c:255 main load check of 1.00 with 14
total th
reads
Wed Nov 27 18:09:45 2002 mio.c:620 mio while loop, working
Wed Nov 27 18:09:45 2002 mio.c:760 MIO read from socket 16:
Wed Nov 27 18:09:45 2002 mio.c:607 mio while loop top
Wed Nov 27 18:09:46 2002 users.c:88 checking users for host localhost
Wed Nov 27 18:09:46 2002 usercount 1 total users
Wed Nov 27 18:10:06 2002 jabberd.c:255 main load check of 1.00 with 14
total th
Sooooo.... Am I even doing this the right way? Is there a better way?
How should I signal to the client that the roster should change?
Thanks much,
Mike
More information about the JDev
mailing list