Gaurav Jain | 27 Feb 04:26 2015
Picon

How does ejabberd high number of requests

Hi,

How does ejabberd handle really high number of requests. For eg.

* I have only instance running.
* There is a module called mod_offline.erl
* It has hook for offline_message_hook.

I am assuming:

* This module gets started by ejabberd_admin when server is started
* Using gen_server callbacks.

-- Is there only a single instance of this module running or are there multiple instances of the module running at the same time
-- If multiple then how many such instances?

I was also curious what needs to be done to write a custom module to be able to handle high number of requests simultaneously.

Could you please provide some pointers?

I am very new to erlang and ejabberd. Please help me understand how does ejabberd take care of high requests.


Best Regards,
_______________________________________________
ejabberd mailing list
ejabberd <at> jabber.ru
http://lists.jabber.ru/mailman/listinfo/ejabberd
Gaurav Jain | 27 Feb 04:19 2015
Picon

(no subject)

Hi,

How does ejabberd handle really high number of requests. For eg.

* I have only instance running.
* There is a module called mod_offline.erl
* It has hook for offline_message_hook.

I am assuming:

* This module gets started by ejabberd_admin when server is started
* Using gen_server callbacks.

-- Is there only a single instance of this module running or are there multiple instances of the module running at the same time
-- If multiple then how many such instances?

I was also curious what needs to be done to write a custom module to be able to handle high number of requests simultaneously.

Could you please provide some pointers?

I am very new to erlang and ejabberd. Please help me understand how does ejabberd take care of high requests.

Best Regards,
Gaurav Jain
_______________________________________________
ejabberd mailing list
ejabberd <at> jabber.ru
http://lists.jabber.ru/mailman/listinfo/ejabberd
Kamrul Khan | 26 Feb 23:18 2015

mod_roster_odbc not starting

Hi,

After enabling mod_roster_odbc module, when I try to restart my server I see the below in my log.

2015-02-26 14:07:03.725 [critical] <0.836.0> <at> gen_mod:start_module:94 Problem starting the module mod_roster_odbc for host <<"localhost">>
 options: []
 error: undef
[{mod_roster_odbc,start,[<<"localhost">>,[]],[]},
 {gen_mod,start_module,3,[{file,"src/gen_mod.erl"},{line,83}]},
 {lists,foreach,2,[{file,"lists.erl"},{line,1336}]},
 {ejabberd_app,start,2,[{file,"src/ejabberd_app.erl"},{line,69}]},
 {application_master,start_it_old,4,
                     [{file,"application_master.erl"},{line,272}]}]
2015-02-26 14:07:03.726 [critical] <0.836.0> <at> gen_mod:start_module:99 ejabberd initialization was aborted because a module start failed.
The trace is [{mod_roster_odbc,start,[<<"localhost">>,[]],[]},{gen_mod,start_module,3,[{file,"src/gen_mod.erl"},{line,83}]},{lists,foreach,2,[{file,"lists.erl"},{line,1336}]},{ejabberd_app,start,2,[{file,"src/ejabberd_app.erl"},{line,69}]},{application_master,start_it_old,4,[{file,"application_master.erl"},{line,272}]}].
(END)


How to fix this? 
_______________________________________________
ejabberd mailing list
ejabberd <at> jabber.ru
http://lists.jabber.ru/mailman/listinfo/ejabberd
Mickaël Rémond | 24 Feb 16:52 2015
Picon

Moving to Github issues

Hello,

As you have seen, we updated the ejabberd.im website yesterday.

However, this is just the tip of the iceberg. As you may have noticed, the whole
process for developing the project itself went through a major
rework. To ease collaboration with the community, we moved to Github
issues. This was decided for the following reasons:

- Almost all developers now already have a Github account. This save the hassle of created another account
on another system.
- It is integrated with Git workflow itself (i.e. you can close a ticket
- with a commit log)
- It offers a single approach to process tickets and pull request.

You can find the new issue tracker here:
https://github.com/processone/ejabberd/issues

Do not worry about previous tickets, we are going to move the relevant
tickets from the older ejabberd ticket system.

Do not hesitate to send your feedback. Star and fork ejabberd on Github,
send us your pull request and let’s some great code done :)

Cheers,

--

-- 
Mickaël Rémond
 http://www.process-one.net/
_______________________________________________
ejabberd mailing list
ejabberd <at> jabber.ru
http://lists.jabber.ru/mailman/listinfo/ejabberd
Mickaël Rémond | 23 Feb 23:00 2015
Picon

New ejabberd.im site and new logo

Hello Folks,

We all agree that ejabberd.im website was a bit dated and did not do
justice to the ejabberd code base.

It indeed deserved a major rework and that's what we started.

We have just rolled out a brand new fresh and modern ejabberd home page
on http://www.ejabberd.im/

Along with that design, we have a new ejabberd logo. The hedgehog is
gone and you now have the bubble 'e' with the nice ejabberd typo. 

We hope you will like it :)

There will still be glitches in a few places that we intend to fix
during the rest of the week.

Your comments are welcome !

--

-- 
Mickaël Rémond
 http://www.process-one.net/
_______________________________________________
ejabberd mailing list
ejabberd <at> jabber.ru
http://lists.jabber.ru/mailman/listinfo/ejabberd
Mickaël Rémond | 23 Feb 15:26 2015
Picon

ejabberd Paris meetup

Hello all,

Paris ejabberd first meetup will take place on the 25th of February, at
ProcessOne office in Paris.

You can register on the meetup on the following page:
http://www.meetup.com/ejabberd/events/220296962/

Jérôme Sautret will give a quick introduction to ejabberd modules
development. Participants will introduce their work and use case for ejabberd.

We hope to see you there !

Please, let us know if someone plan to organise an ejabberd meetup in
another city, we can see how we can help.

Cheers,

--

-- 
Mickaël Rémond
 http://www.process-one.net/
_______________________________________________
ejabberd mailing list
ejabberd <at> jabber.ru
http://lists.jabber.ru/mailman/listinfo/ejabberd
Uday Sawant | 21 Feb 12:38 2015

How Ejabberd hooks work

Hi All, 

I would like to get some details on working of ejabberd hooks. Do they work Synchronously or Async. 

I noticed this strange behaviour where the messages sent to offline user did not get stored to db till the complete execution of listener chain of offline_message_hook. The details are as follows 

Setup:
1. Ejabberd installation 14.07 compiled from source with erlang 16B-03 
2. Ejabberd runs in cluster mode with 2 nodes in same network
3. mod_offline enabled which runs at #50 
4. mod_offline_post which listens on offline_message_hook at #99. This module, for each offline message make a synchronous http call to remote server which triggers notification on respective device.

Test scenario:
1. Two users A and B. Both subscribed to each other.
2. User A is offline and will receive notification for any offline msg received 
3. User B send 10 continuous messages to user A (say 1 - 10)

Observations:
1. Client of A wakes up after receiving 10 notifications and receives all 10 messages 
2. Client A wakes in between say after notification #3 
    a. message 1-3 gets delivered with delayed notification 
    b. message #4 is not received. 
    c. message 5-10 get delivered normally
3. Client A goes offline and then come online after few seconds 
    a. message #4 gets delivered now.

Similarly in other observation
1. Client try to fetch offline messages as soon as it receives the notification
    - no message found in offline storage 
2. Client try to fetch message after delay of 3-5 sec from notification 
    - message retrieved successfully 


If I turn off the mod_offline_post module everything works fine. OR even if I change the httpc:request call in mod_offline_post to async call everything works fine.

My question is why mod_offline waits for completion of other modules on the chain. It should push the message to db as soon as it receives it. When we say "hooks" the listeners are expected to work asynchronously in separate processes. but it doesn't  appears to be so. Am I missing some basics?
_______________________________________________
ejabberd mailing list
ejabberd <at> jabber.ru
http://lists.jabber.ru/mailman/listinfo/ejabberd
Jérôme Sautret | 17 Feb 17:06 2015
Picon

[ANN] ejabberd Community 15.02

Hello,

ejabberd 15.02 is a major new release. We have added fixes as well as
usual improvements.

However, ejabberd 15.02 is mostly a major improvement in the way we
are handling our release cycle.

We are working with ejabberd community to expand and simplify the
development of plugins. You can already find tens of plugins for
ejabberd developed by the community. However, we want to make the
development more accessible to developers. As such, we have introduced
Elixir supports as a standard new language to develop for ejabberd and
are working with Elixir community to make developing for ejabberd,
much more simpler, while still retaining the power of Erlang.

As such, the major improvement in this release is Elixir language
programming (http://elixir-lang.org/), with more features coming in
the next month.

Please, read our blog post for details on why this is significant:
https://blog.process-one.net/ejabberd-joins-the-elixir-revolution/

Here is the changelog:

* Add Elixir support, allows to write plugins in Elixir
* New command to reload configuration without restart
* Support old style erlang expressions in YAML configuration
* Improved captcha listener parsing when protocol not specified
* Fix upgrade of old unbinarized pubsub table from 2.1
* Minor updates in the documentation
* Other bugfixes

As usual, the release is tagged in the Git source code repository on github:
https://github.com/processone/ejabberd

The source package and binary installers are available at ProcessOne:
http://www.process-one.net/en/ejabberd/downloads/

If you suspect you found a bug, search or fill a bug report in Jira:
https://support.process-one.net/browse/EJAB

--

-- 
Jérôme Sautret
http://www.process-one.net/
_______________________________________________
ejabberd mailing list
ejabberd <at> jabber.ru
http://lists.jabber.ru/mailman/listinfo/ejabberd
Mickaël Rémond | 12 Feb 14:27 2015
Picon

ejabberd-contrib repository is ready to get your ejabberd modules

Hello,

For those who have been programming in Erlang since 16 years like me,
you may remember the concept of Jungerl, "a dense and chaotic jungle of
Erlang code" (http://jungerl.sourceforge.net)

ejabberd-contrib repository tarted in somewhat the same spirit a
while. However, as ejabberd main code base is evolving at a very fast
pace, we need to ensure that users do not lose time trying to make
module that have not been updated to the latest version works.

ejabberd-contrib is now a curated repository of ejabberd modules. We
have cleaned it up, fixed a few things and identified 5 modules that at
the moment does not work:
- atom_pubsub: "The atom_pubsub module provides access to all PEP nodes via an AtomPub interface."
- ircd: "This is an IRC server frontend to ejabberd."
- mod_archive: "Message Archiving (XEP-0136)"
- mod_openid: "Transform the Jabber Server in an openid provider."
- mod_profile: "User Profile (XEP-0154) in Mnesia table"

If you think they are valuable and could be useful, your help to fix
them is welcome.

This repository is now ready to gather your ejabberd contributions of
all horizon, gather developer feedback and ready to make sure together
that the code in there is always working fine.

There is plenty of very useful module in there and we will be gathering
and selecting other relevant contributions from various developers
ourselves.  However, you are very welcome to clone the repository and
submit your pull request. As an ejabberd module developer, it's your
place. You are welcome !

Here is the place to go: https://github.com/processone/ejabberd-contrib

Cheers,

--

-- 
Mickaël Rémond
 http://www.process-one.net/
_______________________________________________
ejabberd mailing list
ejabberd <at> jabber.ru
http://lists.jabber.ru/mailman/listinfo/ejabberd
Santiago Ignacio Poli | 11 Feb 18:30 2015

Long living sessions in mod_muc

Hi, I want to implement a Whatsapp-like multi user chat. To do so, I need to fool ejabberd to never close the user session and therefore prevent him from leaving the room any time he disconnects.

It would be easy to implement such functionality? My experience in Erlang is basic, but I thing I can manage it. It would be nice if someone could give me a hint on where to start. I'm looking inside mod_muc.erl and mod_muc_room.erl but I didn't find anything yet.

Thanks in advance!

--
Santiago Ignacio Poli
Java Developer  <at> etermax

 
_______________________________________________
ejabberd mailing list
ejabberd <at> jabber.ru
http://lists.jabber.ru/mailman/listinfo/ejabberd
Mickaël Rémond | 10 Feb 18:44 2015
Picon

ejabberd now support Elixir module development

Hello,

I just added support for Elixir module development. There is a lot more
to come :)

You can now develop for ejabberd any type of module with Elixir modern
Ruby inspired syntax. Enjoy !

Code is in ejabberd master branch: https://github.com/processone/ejabberd

It will be added in ejabberd next official release / package.

Details are on the following blog post:
ejabberd joins the Elixir revolution
https://blog.process-one.net/ejabberd-joins-the-elixir-revolution/

Let's build some great module in Elixir :)

--

-- 
Mickaël Rémond

_______________________________________________
ejabberd mailing list
ejabberd <at> jabber.ru
http://lists.jabber.ru/mailman/listinfo/ejabberd

Gmane