
Copyright © 2001, 2015, Oracle and/or its affiliates. All rights reserved.
Business Number Generator (BNG) Contention
The Business Number Generator is an Oracle Transportation Management mechanism for creating IDs
based on a complex set of business rules. Since the IDs are based on a sequence, it is necessary to
generate the IDs one at a time in order to prevent duplicate IDs. For this reason, a process may have
to wait for another process to finish generating an ID. This waiting can manifest itself as a
performance issue. The impact is even more significant in a scalability environment since the
synchronization must be coordinated across application servers.
It is a good practice to eliminate unnecessary use of BNG. For example, the Bill of Lading 'BM'
Shipment reference number can be disabled with the following property:
glog.shipment.createBMRefnum=false
The Oracle Database sequence number generator has less overhead than the BNG and should be used
instead of the BNG when possible. For example, the s_ship_unit_gid can be changed from the BNG
to an Oracle Database sequence number by setting the following property:
glog.server.bngenerator.oracleSequence.xid.S_SHIP_UNIT_XID.DEFAULT=S_SHIP_UNIT_
SEQUENCE
The following database sequences should be used instead of BNG in high volume transactional
environment.
glog.server.bngenerator.oracleSequence.xid.S_SHIP_UNIT_XID.DEFAULT=S_SHIP_UNIT_
SEQUENCE
glog.server.bngenerator.oracleSequence.xid.SHIPMENT_XID.DEFAULT=SHIPMENT_SEQUEN
CE
glog.server.bngenerator.oracleSequence.xid.ORDER_MOVEMENT_XID.DEFAULT=ORDER_MOV
EMENT_SEQUENCE
glog.server.bngenerator.oracleSequence.xid.SHIP_UNIT_XID.DEFAULT=SHIP_UNIT_GID_
SEQUENCE
glog.server.bngenerator.oracleSequence.xid.ORDER_RELEASE_LINE_XID.DEFAULT=ORDER
_RELEASE_LINE_GID_SEQ
These properties follow the format shown below.
glog.server.bngenerator.oracleSequence.gid.<rule id>=<oracle database
sequence>
Database sequence can be created using following steps if it is not supplied by Oracle Transportation
Management.
Log into the database as glogowner using SQL PLUS and issue following SQL commands:
exec create_sequence.seq(P_TABLE, P_SEQUENCE,P_COLUMN);
grant select on P_SEQUENCE to APP_USER, EXT_USER;
@create_otm_synonyms.sql
For example, following commands will create sequence SHIP_UNIT_SEQUENCE, grant privileges,
create synonyms and associate sequence SHIP_UNIT_SEQUENCE with column SHIP_UNIT_XID and
table SHIP_UNIT.
exec create_sequence.seq(‘SHIP UNIT’,’SHIP UNIT SEQUENCE’,’SHIP UNIT
XID’);
grant select on SHIP UNIT SEQUENCE to APP USER, EXT USER;
@create_otm_synonyms.sql
Comentarios a estos manuales