[erlang-questions] Question about using ETS, PUT/GET

Dmitry Kolesnikov <>
Wed Feb 15 22:22:18 CET 2012


Hello,

> The issue is I cannot start ejabberd, according to the log, when the second
> time this module starts, ejabberd tells there is an argument error.


this is due to your named ets table. When you stat this module second time the table_name is exists and ets throws an error. You have to re-shake you app in the way that only one copy of ets is created. 

- Dmitry

On Feb 15, 2012, at 11:16 PM, flowerstars wrote:

> Hi everyone,
> 
> I am working on developing modules on ejabberd. I tried to use ETS in
> start/2. The codes are following:
> 
>  ets:new(table_name, [named_table, public, bag]),
>  ets:insert(table_name, {num, 999}),
> 
> I use "ets:lookup(table_name, num)," in another function within the same
> file to read the value "999".
> 
> The issue is I cannot start ejabberd, according to the log, when the second
> time this module starts, ejabberd tells there is an argument error.
> 
> Actually, I just want to share some variables. I used to use PUT/2 and
> GET/1, I use "put(key, Value)" in start/2, and use "get(key)" in another
> function within one file. However, what I got is "undefined". Are they in
> the same process? 
> 
> Any help is appreciated!!
> 
> Thanks a lot! 
> 
> 
> --
> View this message in context: http://erlang.2086793.n4.nabble.com/Question-about-using-ETS-PUT-GET-tp4392011p4392011.html
> Sent from the Erlang Questions mailing list archive at Nabble.com.
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions




More information about the erlang-questions mailing list