1orber(3)                   Erlang Module Definition                   orber(3)
2
3
4

NAME

6       orber - The main module of the Orber application
7

DESCRIPTION

9       This module contains the functions for starting and stopping the appli‐
10       cation. It also has some utility functions to get some of the  configu‐
11       ration information from running application.
12

EXPORTS

14       start() -> ok
15       start(Type) -> ok
16
17              Types:
18
19                 Type = temporary | permanent
20
21              Starts the Orber application (it also starts mnesia if it is not
22              running). Which Type parameter is supplied determines the behav‐
23              ior. If not supplied Orber is started as temporary. See the Ref‐
24              erence Manual application(3) for further information.
25
26       jump_start(Attributes) -> ok | {'EXIT', Reason}
27
28              Types:
29
30                 Attributes = Port | Options
31                 Port = integer()
32                 Options = [{Key, Value}]
33                 Key = any key listed in the configuration chapter
34                 Value = allowed value associated with the given key
35
36              Installs and starts the Orber and the Mnesia  applications  with
37              the  configuration  parameters  domain and iiop_port set to "IP-
38              number:Port" and the supplied Port respectively. Theses settings
39              are  in  most  cases sufficient to ensure that no clash with any
40              other Orber instance occur. If this operation  fails,  check  if
41              the listen port (iiop_port) is already in use. This function MAY
42              ONLY be used during development and tests; how Orber is  config‐
43              ured  when  using  this operation may change at any time without
44              warning.
45
46       stop() -> ok
47
48              Stops the Orber application.
49
50       info() -> ok
51       info(IoType) -> ok | {'EXIT', Reason} | string()
52
53              Types:
54
55                 IoType = info_msg | string | io | {io, IoDevice}
56
57              Generates an Info Report, which  contain  Orber's  configuration
58              settings.  If  no  IoType is supplied, info_msg is used (see the
59              error_logger documentation). When the atom  string  is  supplied
60              this  function  will  return  a flat list. For io and {io, IoDe‐
61              vice}, io:format/1 and io:format/3 is used respectively.
62
63       exception_info(Exception) -> {ok, string()} | {error, Reason}
64
65              Returns a printable string, which describes the supplied  excep‐
66              tion  in  greater detail. Note, this function is mainly intended
67              for system exceptions.
68
69       is_system_exception(Exception) -> true | false
70
71              Returns true if the  supplied  exception  is  a  system  defined
72              exception, otherwise false.
73
74       get_tables() -> [Tables]
75
76              Returns a list of the Orber specific Mnesia tables. This list is
77              required to restore Mnesia if it has been partitioned.
78
79       get_ORBInitRef() -> string() | undefined
80
81              This function returns undefined if we  will  resolve  references
82              locally,  otherwise  a string describing which host we will con‐
83              tact if  the  Key  given  to  corba:resolve_initial_references/1
84              matches  the  Key  set  in this configuration variable. For more
85              information see the user's guide.
86
87       get_ORBDefaultInitRef() -> string() | undefined
88
89              This function returns undefined if we  will  resolve  references
90              locally,  otherwise  a  string  describing which host, or hosts,
91              from  which  we  will  try  to  resolve   the   Key   given   to
92              corba:resolve_initial_references/1. For more information see the
93              user's guide.
94
95       domain() -> string()
96
97              This function returns the  domain  name  of  the  current  Orber
98              domain as a string.
99
100       iiop_port() -> int()
101
102              This function returns the port-number, which is used by the IIOP
103              protocol. It can be configured by setting the application  vari‐
104              able iiop_port, if it is not set it will have the default number
105              4001.
106
107       iiop_out_ports() -> 0 | {Min, Max}
108
109              The return value of this operation  is  what  the  configuration
110              parameter iiop_out_ports has been set to.
111
112       iiop_out_ports_random() -> true | false
113
114              Return    the    value    of    the    configuration   parameter
115              iiop_out_ports_random.
116
117       iiop_out_ports_attempts() -> int()
118
119              Return   the    value    of    the    configuration    parameter
120              iiop_out_ports_attempts.
121
122       iiop_ssl_port() -> int()
123
124              This  function  returns  the  port-number,  which is used by the
125              secure IIOP protocol. It can be configured by setting the appli‐
126              cation variable iiop_ssl_port, if it is not set it will have the
127              default number 4002 if Orber is to configured to run  in  secure
128              mode. Otherwise it returns -1.
129
130       iiop_timeout() -> int() (milliseconds)
131
132              This  function  returns  the  timeout value after which outgoing
133              IIOP requests terminate. It can be  configured  by  setting  the
134              application  variable  iiop_timeout  TimeVal (seconds), if it is
135              not set it will have the default value infinity.  If  a  request
136              times out a system exception, e.g. TIMEOUT, is raised.
137
138              Note:  the  iiop_timeout  configuration  parameter (TimeVal) may
139              only range between 0 and 1000000 seconds. Otherwise, the default
140              value is used.
141
142              Note:  Earlier  IC  versions  required  that  the compile option
143              {timeout,"module::interface"}, was used, which allow the user to
144              add  an  extra  timeout  parameter, e.g., module_interface:func‐
145              tion(ObjRef,  Timeout,  ...  Arguments  ...)  or   module_inter‐
146              face:function(ObjRef,  [{timeout, Timeout}], ... Arguments ...),
147              instead of module_interface:function(ObjRef, ... Arguments ...).
148              This  is  no  longer  the case and if the extra Timeout is used,
149              argument will override the configuration parameter iiop_timeout.
150              It  is,  however,  not  possible to use infinity to override the
151              Timeout parameter. The Timeout option is also valid for  objects
152              which resides within the same Orber domain.
153
154       iiop_connection_timeout() -> int() (milliseconds)
155
156              This  function  returns  the  timeout value after which outgoing
157              IIOP connections terminate. It can be configured by setting  the
158              application  variable iiop_connection_timeout TimeVal (seconds),
159              if it is not set it will have the default  value  infinity.  The
160              connection will not be terminated if there are pending requests.
161
162              Note:   the   iiop_connection_timeout   configuration  parameter
163              (TimeVal) may only range between 0 and 1000000  seconds.  Other‐
164              wise, the default value is used.
165
166       iiop_connections() -> Result
167       iiop_connections(Direction) -> Result
168
169              Types:
170
171                 Direction = in | out | inout
172                 Result  =  [{Host,  Port}]  |  [{Host,  Port,  Interface}]  |
173                 {'EXIT',Reason}
174                 Host = string()
175                 Port = integer()
176                 Interface = string()
177                 Reason = term()
178
179              The list returned by this operation  contain  tuples  of  remote
180              hosts/ports  Orber is currently connected to. If no Direction is
181              not  supplied,  both  incoming  and  outgoing  connections   are
182              included.
183
184              If  a  specific local interface has been defined for the connec‐
185              tion, this will be added to the returned tuple.
186
187       iiop_connections_pending() -> Result
188
189              Types:
190
191                 Result  =  [{Host,  Port}]  |  [{Host,  Port,  Interface}]  |
192                 {'EXIT',Reason}
193                 Host = string()
194                 Port = integer()
195                 Interface = string()
196                 Reason = term()
197
198              In  some  cases a connection attempt (i.e. trying to communicate
199              with another ORB) may block due to a  number  of  reasons.  This
200              operation  allows  the  user  to  check if this is the case. The
201              returned list contain tuples of  remote  hosts/ports.  Normally,
202              the list is empty.
203
204              If  a  specific local interface has been defined for the connec‐
205              tion, this will be added to the returned tuple.
206
207       iiop_in_connection_timeout() -> int() (milliseconds)
208
209              This function returns the timeout  value  after  which  incoming
210              IIOP  connections terminate. It can be configured by setting the
211              application variable  iiop_in_connection_timeout  TimeVal  (sec‐
212              onds), if it is not set it will have the default value infinity.
213              The connection will not  be  terminated  if  there  are  pending
214              requests.
215
216              Note:  the  iiop_in_connection_timeout  configuration  parameter
217              (TimeVal) may only range between 0 and 1000000  seconds.  Other‐
218              wise, the default value is used.
219
220       iiop_acl() -> Result
221
222              Types:
223
224                 Result = [{Direction, Filter}] | [{Direction, Filter, [Inter‐
225                 face]}]
226                 Direction = tcp_in | ssl_in | tcp_out | ssl_out
227                 Filter = string()
228                 Interface = string()
229
230              Returns the ACL configuration. The Filter uses a extended format
231              of   Classless   Inter   Domain  Routing  (CIDR).  For  example,
232              "123.123.123.10" limits the connection to that particular  host,
233              while "123.123.123.10/17" allows connections to or from any host
234              equal to the 17 most significant bits. Orber also allow the user
235              to   specify   a  certain  port  or  port  range,  for  example,
236              "123.123.123.10/17#4001"    and    "123.123.123.10/17#4001/5001"
237              respectively. IPv4 or none compressed IPv6 strings are accepted.
238              The list of Interfaces, IPv4 or IPv6 strings, are currently only
239              used for outgoing connections and may only contain one  address.
240              If  set  and access is granted, Orber will use that local inter‐
241              face when connecting to the other ORB. The module orber_acl pro‐
242              vides  operations  for evaluating the access control for filters
243              and addresses.
244
245       activate_audit_trail() -> Result
246       activate_audit_trail(Verbosity) -> Result
247
248              Types:
249
250                 Verbosity = stealth | normal | verbose
251                 Result = ok | {error, Reason}
252                 Reason = string()
253
254              Activates audit/trail for all  existing  incoming  and  outgoing
255              IIOP  connections.  The  Verbosity parameter, stealth, normal or
256              verbose, determines which of the built in interceptors  is  used
257              (orber_iiop_tracer_stealth,      orber_iiop_tracer_silent     or
258              orber_iiop_tracer respectively). If no verbosity level  is  sup‐
259              plied, then the normal will be used.
260
261              In  case  Orber  is  configured  to  use other interceptors, the
262              audit/trail interceptors will simply be added to that list.
263
264       deactivate_audit_trail() -> Result
265
266              Types:
267
268                 Result = ok | {error, Reason}
269                 Reason = string()
270
271              Deactivates audit/trail for all existing incoming  and  outgoing
272              IIOP  connections.  In  case  Orber  is  configured to use other
273              interceptors, those will still be used.
274
275       add_listen_interface(IP, Type) -> Result
276       add_listen_interface(IP, Type, Port) -> Result
277       add_listen_interface(IP, Type, ConfigurationParameters) -> Result
278
279              Types:
280
281                 IP = string
282                 Type = normal | ssl
283                 Port = integer() > 0
284                 ConfigurationParameters = [{Key, Value}]
285                 Key  =  flags  |  ip_family  |  iiop_in_connection_timeout  |
286                 iiop_max_fragments  |  iiop_max_in_requests  | interceptors |
287                 iiop_port | iiop_ssl_port | ssl_server_options
288                 Value = as described in the User's Guide or below
289                 Result  =  {ok,  Ref}  |  {error,  Reason}  |   {'EXCEPTION',
290                 #'BAD_PARAM'{}}
291                 Ref = #Ref
292                 Reason = string()
293
294              Create  a  new  process  that handle requests for creating a new
295              incoming IIOP connection via the given interface  and  port.  If
296              the  latter  is  excluded,  Orber  will  use  the  value  of the
297              iiop_port or iiop_ssl_port configuration  parameters.  The  Type
298              parameter  determines  if  it is supposed to be IIOP or IIOP via
299              SSL. If  successful,  the  returned  #Ref  shall  be  passed  to
300              orber:remove_listen_interface/1  when  the  connection  shall be
301              terminated.
302
303              It is also possible  to  supply  configuration  parameters  that
304              override  the global configuration. The iiop_in_connection_time‐
305              out, iiop_max_fragments, iiop_max_in_requests  and  interceptors
306              parameters  simply  overrides  the  global counterparts (See the
307              Configuration chapter in the User's Guide). But for the  follow‐
308              ing parameters there are a few restrictions:
309
310                * flags - currently it is only possible to override the global
311                  setting for the Use Current Interface  in  IOR  and  Exclude
312                  CodeSet Component flags.
313
314                * ip_family - can be set to inet or inet6 and is used to get a
315                  listen interface that  uses  another  IP  version  than  the
316                  default set with flags at startup.
317
318                * iiop_port  -  requires  that Use Current Interface in IOR is
319                  activated and the supplied Type is normal. If  so,  exported
320                  IOR:s  will contain the IIOP port defined by this configura‐
321                  tion parameter. Otherwise, the global setting will be used.
322
323                * iiop_ssl_port - almost equivalent to iiop_port. The  differ‐
324                  ence  is that Type shall be ssl and that exported IOR:s will
325                  contain the IIOP via SSL port defined by this  configuration
326                  parameter.
327
328              If  it  is  not possible to add a listener based on the supplied
329              interface and port,  the  error  message  is  one  of  the  ones
330              described in inet and/or ssl documentation.
331
332       remove_listen_interface(Ref) -> ok
333
334              Types:
335
336                 Ref = #Ref
337
338              Terminates  the  listen  process,  associated  with the supplied
339              #Ref, for incoming a connection. The Ref parameter is the return
340              value  from  the  orber:add_listen_interface/2/3 operation. When
341              terminating the connection, all  associated  requests  will  not
342              deliver a reply to the clients.
343
344       close_connection(Connection) -> Result
345       close_connection(Connection, Interface) -> Result
346
347              Types:
348
349                 Connection = Object | [{Host, Port}]
350                 Object = #objref (external)
351                 Host = string()
352                 Port = string()
353                 Interface = string()
354                 Result = ok | {'EXCEPTION', #'BAD_PARAM'{}}
355
356              Will try to close all outgoing connections to the host/port com‐
357              binations found in the supplied object reference  or  the  given
358              list  of  hosts/ports. If a #'IOP_ServiceContext'{} containing a
359              local interface has been used when communicating with the remote
360              object  (see  also  Module_Interface),  that  interface shall be
361              passed as the second argument. Otherwise,  connections  via  the
362              default local interface, will be terminated.
363
364          Note:
365              Since  several  clients  maybe communicates via the same connec‐
366              tion, they will be affected when invoking this operation.  Other
367              clients may re-create the connection by invoking an operation on
368              the target object.
369
370
371       secure() -> no | ssl
372
373              This function returns the security mode  Orber  is  running  in,
374              which  is  either  no if it is an insecure domain or the type of
375              security mechanism used. For the moment the only security mecha‐
376              nism is ssl. This is configured by setting the application vari‐
377              able secure.
378
379       ssl_server_options() -> list()
380
381              This function returns the list of SSL options set for the  Orber
382              domain  as server. This is configured by setting the application
383              variable ssl_server_options.
384
385       ssl_client_options() -> list()
386
387              This function returns the list of SSL options used  in  outgoing
388              calls in the current process. The default value is configured by
389              setting the application variable ssl_client_options.
390
391       set_ssl_client_options(Options) -> ok
392
393              Types:
394
395                 Options = list()
396
397              This function takes a list of SSL options as parameter and  sets
398              it for the current process.
399
400       objectkeys_gc_time() -> int() (seconds)
401
402              This  function returns the timeout value after which after which
403              terminated object keys, related to servers started with the con‐
404              figuration parameter {persistent, true}, will be removed. It can
405              be  configured  by  setting  the  application  variable   objec‐
406              tkeys_gc_time  TimeVal  (seconds), if it is not set it will have
407              the default value infinity.
408
409              Objects terminating with reason normal or shutdown  are  removed
410              automatically.
411
412              Note:  the  objectkeys_gc_time configuration parameter (TimeVal)
413              may only range between 0 and  1000000  seconds.  Otherwise,  the
414              default value is used.
415
416       orber_nodes() -> RetVal
417
418              Types:
419
420                 RetVal = [node()]
421
422              This  function  returns  the  list of node names that this orber
423              domain consists of.
424
425       install(NodeList) -> ok
426       install(NodeList, Options) -> ok
427
428              Types:
429
430                 NodeList = [node()]
431                 Options = [Option]
432                 Option  =  {install_timeout,  Timeout}  |  {ifr_storage_type,
433                 TableType}  |  {nameservice_storage_type,  TableType} | {ini‐
434                 tialreferences_storage_type, TableType} | {load_order, Prior‐
435                 ity}
436                 Timeout = infinity | integer()
437                 TableType = disc_copies | ram_copies
438                 Priority = integer()
439
440              This  function installs all the necessary mnesia tables and load
441              default data in some of  them.  If  one  or  more  Orber  tables
442              already  exists  the  installation fails. The function uninstall
443              may be used, if it is safe, i.e., no other application  is  run‐
444              ning Orber.
445
446              Preconditions:
447
448                * a mnesia schema must exist before the installation
449
450                * mnesia is running on the other nodes if the new installation
451                  shall be a multi node domain
452
453              Mnesia will be started by the function if it is not already run‐
454              ning  on  the installation node and if it was started it will be
455              stopped afterwards.
456
457              The options that can be sent to the installation program is:
458
459                * {install_timeout, Timeout} - this timeout  is  how  long  we
460                  will  wait  for  the tables to be created. The Timeout value
461                  can be  infinity  or  an  integer  number  in  milliseconds.
462                  Default is infinity.
463
464                * {ifr_storage_type, TableType} - this option sets the type of
465                  tables used for the interface repository. The TableType  can
466                  be disc_copies or ram_copies. Default is disc_copies.
467
468                * {initialreferences_storage_type,  TableType}  -  this option
469                  sets the type of table used for storing initial  references.
470                  The  TableType  can be disc_copies or ram_copies. Default is
471                  ram_copies.
472
473                * {nameservice_storage_type, TableType} - the default behavior
474                  of  Orber  is to install the NameService as ram_copies. This
475                  option makes it possible to change this to disc_copies.  But
476                  the user should be aware of that if a node is restarted, all
477                  local object references stored in  the  NameService  is  not
478                  valid.  Hence,  you  cannot switch to disc_copies and expect
479                  exactly the same behavior as before.
480
481                * {load_order, Priority} - per default the priority is set  to
482                  0. Using this option it will change the priority of in which
483                  order Mnesia will  load  Orber  internal  tables.  For  more
484                  information, consult the Mnesia documentation.
485
486       uninstall() -> ok
487
488              This function stops the Orber application, terminates all server
489              objects and removes all Orber related mnesia tables.
490
491              Note: Since other applications may be running on the  same  node
492              using mnesia uninstall will not stop the mnesia application.
493
494       add_node(Node, Options) -> RetVal
495
496              Types:
497
498                 Node = node()
499                 Options = IFRStorageType | [KeyValue]
500                 IFRStorageType = StorageType
501                 StorageType = disc_copies | ram_copies
502                 KeyValue  =  {ifr_storage_type, StorageType} | {initialrefer‐
503                 ences_storage_type, StorageType} | {nameservice_storage_type,
504                 StorageType} | {type, Type}
505                 Type = temporary | permanent
506                 RetVal = ok | exit()
507
508              This  function add given node to a existing Orber node group and
509              starts Orber on the new node. orber:add_node is  called  from  a
510              member in the Orber node group.
511
512              Preconditions for new node:
513
514                * Erlang  started  on  the  new  node using the option -mnesia
515                  extra_db_nodes,  e.g.,  erl  -sname  new_node_name   -mnesia
516                  extra_db_nodes ConnectToNodes_List
517
518                * The new node's domain name is the same for the nodes we want
519                  to connect to.
520
521                * Mnesia is running on the new node (no new schema created).
522
523                * If the new node will use disc_copies the schema type must be
524                  changed using: mnesia:change_table_copy_type(schema, node(),
525                  disc_copies).
526
527              Orber will be started by the function on the new node.
528
529              Fails if:
530
531                * Orber already installed on given node.
532
533                * Mnesia not started as described above on the new node.
534
535                * Impossible to copy data in Mnesia tables to the new node.
536
537                * Not able to start Orber on the new node, due to,  for  exam‐
538                  ple, the iiop_port is already in use.
539
540              The  function  do not remove already copied tables after a fail‐
541              ure. Use orber:remove_node to remove these tables.
542
543       remove_node(Node) -> RetVal
544
545              Types:
546
547                 Node = node()
548                 RetVal = ok | exit()
549
550              This function removes given node from a Orber  node  group.  The
551              Mnesia application is not stopped.
552
553       configure(Key, Value) -> ok | {'EXIT', Reason}
554
555              Types:
556
557                 Key   =  orbDefaultInitRef  |  orbInitRef  |  giop_version  |
558                 iiop_timeout | iiop_connection_timeout  |  iiop_setup_connec‐
559                 tion_timeout    |    iiop_in_connection_timeout    |   objec‐
560                 tkeys_gc_time | orber_debug_level
561                 Value = allowed value associated with the given key
562
563              This function allows the user to configure Orber in,  for  exam‐
564              ple,  an Erlang shell. It is possible to invoke configure at any
565              time the keys specified above.
566
567              Any other key must be set before installing and starting Orber.
568
569              Trying to change the configuration  in  any  other  way  is  NOT
570              allowed since it may affect the behavior of Orber.
571
572              For more information regarding allowed values, see configuration
573              settings in the User's Guide.
574
575          Note:
576              Configuring the IIOP timeout  values  will  not  affect  already
577              existing connections. If you want a guaranteed uniform behavior,
578              you must set these parameters from the start.
579
580
581
582
583Ericsson AB                        orber 5.0                          orber(3)
Impressum