Beruflich Dokumente
Kultur Dokumente
JD Edwards EnterpriseOne
Tools Release 9.1
December 2011
PURPOSE STATEMENT
This document addresses time zone support for the Oracle JD Edwards EnterpriseOne solution. As many
technology concepts and advanced CNC concepts are leveraged in the implementation of a time zone solution
individuals who implement this solution should have the following qualifications:
A familiarity with any integrated third-party product interacting with JD Edwards EnterpriseOne to
evaluate whether the mechanisms that are put in place might alter or compromise its use.
Important: The time zone implementation methodology described herein requires as a minimum JD Edwards
EnterpriseOne tools release 9.1.
Important: An IDDA (based upon bug 13466311) is required when implementing the time zone solution on
little endian platforms, e.g. Microsoft Windows and Linux built on JD Edwards EnterpriseOne tools release
9.1.n.n preceding tools release 9.1.0.2. Tools release 9.1.0.2 contains the little endian platform fix.
Important: The time zone implementation methodology described herein does not apply to database table
triggers. JD Edwards EnterpriseOne uses database table triggers for 21 CFR Part 11. Thus, audit records will be
entered to the database based upon the database system's time clock.
Important: The time zone implementation when applied against the IBM i platform requires special package
build / deploy considerations described within Appendix C found in this document.
Important: The time zone methodology described herein when applied against a server using a high available
'active-active' or load-balancing cluster solution requires special considerations described within Appendix D
found in this document. An 'active-active' or load-balancing cluster solution is one where two or more active
physical node servers sharing a common logical cluster name are made available via a 'load-balancing' intelligent
network appliance.
This document is intended for information purposes only, and may not be incorporated into any contract. It is
not a commitment to deliver any material, code, or functionality, and should not be relied upon in making
purchasing decisions. The development, release, and timing of any features or functionality described for
Oracles products remains at the sole discretion of Oracle. Updates and enhancements are provided in
accordance with Oracles Technical Support Policies at:
www.oracle.com/support/collateral/oracle-technical-support-policies.pdf
Table of Contents
Introduction .................................................................................................................................... 1
Time Zone Implementation (Historical Methodology) ................................................................................ 1
OVERVIEW....................................................................................................................................... 2
EnterpriseOne Requirements .................................................................................................................... 3
Configuring EnterpriseOne JAS HTML JVMs for Different Time Zones ....................................................... 12
Configure the Application Server JAS HTML JVM to use a Specific Time Zone............................................................... 12
Configuring the IBM WebSphere Application Server ..................................................................................................... 13
Configuring the Oracle WebLogic Server ........................................................................................................................ 15
Configure the JD Edwards EnterpriseOne JAS INI Files ................................................................................................... 19
OVERVIEW
The techniques outlined in this document leverage various technology concepts. Although these technology concepts exist
across supported EntepriseOne server platforms, the implementation of any particular technology may differ from one
platform to another. This document is intended to provide guidance and will not address the configuration of each
technology concept by specific platform.
When an EntepriseOne Business Function (BSFN) is executed and data is written to the database, the transaction record's
date-time-stamp is based upon the server's time clock. For BSFNs executed on an HTML server the solution is simple as
one can modify the Java argument by instance (Java Virtual Machine, a.k.a. JVM) so that the HTML specific instance uses
a particular time zone.
Similar logic can be applied to the EnterpriseOne services by assigning a time zone environment variable (or locale setting)
to the operating system user account used to start the JD Edwards EnterpriseOne services. When these services are
started they will inherit the time zone attribute associated with the OS user account. This can be put into practice by
creating multiple operating system user accounts each assigned to a different time zone. These accounts can then be
associated to a time zone specific JD Edwards EnterpriseOne system foundation instance(s) installed on a single server.
For JD Edwards EnterpriseOne a system foundation instance is made up of a JDE.INI file, the file system, and binaries
of a specific tools release used in conjunction with an application foundation, e.g. PD900. Generally when a new
'foundation' is added to a server running another foundation, it requires that the network port be unique as is found in a
multi-foundation implementation. In taking such a tact (where each foundation has a unique port) we eliminate the ability
to leverage and easily manage a common JD Edwards EnterpriseOne server package and diminish the ability to view
reports across the enterprise, etc.
For each JD Edwards EnterpriseOne system foundation instance to share a common network port a few things must
happen. First, the server on which the JDE foundations are installed must have a virtual IP address created for each
supported time zone. Second, a virtual hostname must be created and assigned to each time zone specific virtual IP address.
Third, each installed JDE foundation's JDE.INI file would direct its server network traffic to a time zone specific virtual
hostname and the foundation would be assigned to a time zone specific OS user account. Fourth, a JD Edwards 'Add
Server' plan must be created and executed for each added virtual hostname. Fifth, JD Edwards EnterpriseOne code changes
have been introduced to make it possible for the JD Edwards EnterpriseOne logic to execute and remain scoped to a
particular virtual hostname. Time zone support begins with JD Edwards EnterpriseOne Tools Release 9.1.
Each HTML Server Instance and Enterprise (Logic) Server combination sharing a common time zone will be linked via INI
based configuration settings and OCM mappings. When an EnterpriseOne user is assigned to a particular HTML server,
their EnterpriseOne user role will be assigned to an environment whose OCM mappings for BSFN logic and UBEs are
directed to their time zone specific EnterpriseOne Server.
The aforementioned methodology makes it possible for a single physical server sharing a common operating system image
to support multiple time zone specific JD Edwards EnterpriseOne logic servers. Each logic server will be known by its
virtual hostname, have its own virtual IP address, be tied to an HTML server instance which shares a similar time zone, and use
a time zone specific operating system user account to start its services. Figure 2 shown below depicts a JD Edwards
EnterpriseOne solution logically delineated by three time zones.
export TZ="/usr/share/zoneinfo/America/Denver"
export TZ="/usr/share/zoneinfo/America/Chicago"
export TZ="/usr/share/zoneinfo/America/New_York"
JDE.INI
[JDENET]
serviceNameListen=6015
JDE.INI
[JDENET]
serviceNameListen=6015
JDE.INI
[JDENET]
serviceNameListen=6015
Single Physical Server with Single Operating System Image - Hostname: JDEENTSRV
JAS.INI:
JAS/HTML
Server
TZ -7 GMT:
HTML01
JAS.INI:
JAS/HTML
Server
TZ -6 GMT:
HTML01
JAS.INI:
JAS/HTML
Server
TZ -5 GMT:
HTML01
[PACKAGE BUILD]
PackageDomainServer=JDESRVR03
PackageDomainPort=6015
[PACKAGE BUILD]
PackageDomainServer=JDESRVR02
PackageDomainPort=6015
[PACKAGE BUILD]
PackageDomainServer=JDESRVR01
PackageDomainPort=6015
User Community
EnterpriseOne Requirements
This technique is currently limited to JD Edwards EnterpriseOne tools release 9.1 and higher. This technique requires
special considerations for a JD Edwards EnterpriseOne Enterprise/Logic/Batch server using an 'active-active' or loadbalancing cluster solution. An 'active-active' or load-balancing cluster solution is one where two or more active physical node
servers sharing a common logical cluster name are made available via a 'load-balancing' intelligent network appliance; see
Appendix D found in this document for more details.
Important: License program 5761SS1, option 21 "Extended NLS Support" is an IBM i platform requirement.
Add a virtual IP address, one per time zone, and associate this to the system's NIC card. Start the newly added TCP
interface. Then verify the configuration making certain the virtual IP addresses were successfully added and active.
cmd: ADDTCPIFC INTNETADR('10.123.123.51') LIND(ETHERNET) SUBNETMASK('255.255.254.0')
cmd: ADDTCPIFC INTNETADR('10.123.123.52') LIND(ETHERNET) SUBNETMASK('255.255.254.0')
cmd: ADDTCPIFC INTNETADR('10.123.123.53') LIND(ETHERNET) SUBNETMASK('255.255.254.0')
cmd: STRTCPIFC INTNETADR('10.123.123.51')
cmd: STRTCPIFC INTNETADR('10.123.123.52')
cmd: STRTCPIFC INTNETADR('10.123.123.53')
cmd: CFGTCP Option 1 | F11
Work with TCP/IP Interfaces
System:
JDE900SVR
2=Change
4=Remove
5=Display
9=Start
10=End
Internet
Subnet
Interface
Alias
Opt
Address
Mask
Status
Name
__
_______________
__
10.123.123.49
255.255.254.0
Active
*NONE
__
10.123.123.51
255.255.254.0
Active
*NONE
__
10.123.123.52
255.255.254.0
Active
*NONE
__
10.123.123.53
255.255.254.0
Active
*NONE
__
127.0.0.1
255.0.0.0
Active
LOCALHOST
__
192.168.5.1
255.255.255.0
Active
*NONE
JDE900SVR
Opt
2=Change
4=Remove
5=Display
Internet
Host
Address
Name
________________________________
::1
10.123.123.49
7=Rename
IPV6-LOOPBACK
IPV6-LOCALHOST
JDE900SVR.DOMAIN.COM
JDE900SVR
JDE900TZ7N.DOMAIN.COM
JDE900TZ7N
10.123.123.51
10.123.123.52
10.123.123.53
JDE900TZ6N.DOMAIN.COM
JDE900TZ6N
JDE900TZ5N.DOMAIN.COM
JDE900TZ5N
JDE900TZ0N.DOMAIN.COM
JDE900TZ0N
Important: The local WINS and/or DNS server(s) must be updated to resolve each newly added virtual
hostname to its associated virtual IP address.
Adding the Time Zone Specific Virtual Host Servers to JD Edwards EnterpriseOne
Add libraries (schemas), one per time zone, to the DB2/400 database. Label them for ease of reference as shown below.
cmd: CRTLIB LIB(SVM900TZ6N) TEXT(JDE900TZ6N_ENTSRVR_TZ_NEG_6_CHICAGO)
cmd: CRTLIB LIB(SVM900TZ5N) TEXT(JDE900TZ5N_ENTSRVR_TZ_NEG_5_NEWYORK)
cmd: CRTLIB LIB(SVM900TZ0N) TEXT(JDE900TZ0N_ENTSRVR_TZ_NEG_0_LONDON)
From the Deployment Server login to the JDEPLAN environment run "Add-on Servers Plan" to add the new virtual
server(s) to EnterpriseOne. Create a new 'Add-on Servers' plan, validate the plan, and execute it via the workbench.
Note: Running R9840C prior to executing the plan will copy your current system configuration from the SY900 database to the Deployment
Server local database. This ensures the information pushed from the local database to the server is accurate and date relevant.
SERVER
JDE900TZ7N
JDE900TZ6N
JDE900TZ5N
JDE900TZ0N
PORT
6015
6015
6015
6015
SYSTEM
FOUNDTION LIBRARY
SVM900
SVM900TZ6N
SVM900TZ5N
SVM900TZ0N
TIMEZONE
Denver
Chicago
NewYork
London
Note: System Foundation library is equivalent to the Unix install path: /u01/app/JDEdwards/e900_tz0.
Create New JD Edwards EnterpriseOne System Foundation Instances on the Server
Replicate an existing system foundation instance by saving and restoring (Unix tar) the system foundation library (including
the IFS directory structure). See Appendix A of this document for instructions on how to replicate the System Foundation
through save and restore commands. Use the Server Manager Console register the instance, e.g. click Create New Managed
Instance & select "Register an Existing Enterprise Server". It is also possible to use the Server Manager
Console to install a new System Foundation instance; e.g. click Create New Managed Instance and select "Install New
Enterprise Server".
Figure 4: Virtual Time Zone Server Manager Instance Information
SERVER MANAGER INSTANCE
NAME
JDE900TZ7N_EntSrvr_TZn7_De
nver
JDE900TZ6N_EntSrvr_TZn6_Ch
icago
JDE900TZ5N_EntSrvr_TZn5_Ne
wYork
JDE900TZ0N_EntSrvr_TZn0_Lo
ndon
SYSTEM
FOUNDATION
SERVER
HOST NAME
PORT
START
IPC
SERVER MAP
LIBRARY
E900SYST7N
JDE900TZ7N
6015
0001
SVM900
E900SYST6N
JDE900TZ6N
6015
2101
SVM900TZ6N
E900SYST5N
JDE900TZ5N
6015
4201
SVM900TZ5N
E900SYST0N
JDE900TZ0N
6015
6301
SVM900TZ0N
Each System Foundation instance must have a dedicated set of PATHCODE replicated TAM SPEC objects. On the IBM i
platform this includes IFS TAM SPEC files and binary libraries, e.g. '/PD900' & QSYS/PD900. Because the IBM i
platform's QSYS libraries exist in a flat hierarchical structure it is not possible to have two distinct PD900 libraries. This is
unlike Windows and Unix platforms where these install paths could exist on unique mount points, e.g.
/u01/app/JDEdwards/e900_tz0/PD900. As a result for the IBM i platform it is necessary for the replicated
PATHCODE objects to be defined with an addendum that is unique to each supported time zone system foundation
instance. This addendum is defined in the time zone system foundation's JDE.INI file.
The JDE.INI ApplicationPathAddendum addendum (TZnN) is concatenated as a suffix to the replicated objects
common name (PD900). The resulting replicated object names will be PD900TZ0N, PD900TZ5N, and PD900TZ6N.
Below are instructions for generating unique sets of replicated objects via IBM i platform save and restore commands.
cmd: ADDLIBLE E900SYS
cmd: ENDNET
cmd: CLRIPC
License program 5761SS1, option 21 "Extended NLS Support / library QSYSLOCALE" is a IBM i platform
requirement. This license program makes it possible to define time zone offsets via locale settings.
The process outlined below creates locale specific objects which can be associated with IBM i platform user account (user
profiles) used to start JD Edwards EnterpriseOne services.
Create time zone specific source file members. These will be edited and compiled for each supported time zone instance.
cmd: CRTPF FILE(QGPL/MYLOCALES) RCDLEN(112) FILETYPE(*SRC) MAXMBRS(*NOMAX)
cmd: CPYF FROMFILE(QSYSLOCALE/QLOCALESRC) TOFILE(QGPL/MYLOCALES) FROMMBR(EN_US)
TOMBR(EN_US_ET) MBROPT(*ADD)
cmd: CPYF FROMFILE(QSYSLOCALE/QLOCALESRC) TOFILE(QGPL/MYLOCALES) FROMMBR(EN_US)
TOMBR(EN_US_CT) MBROPT(*ADD)
cmd: CPYF FROMFILE(QSYSLOCALE/QLOCALESRC) TOFILE(QGPL/MYLOCALES) FROMMBR(EN_US)
TOMBR(EN_US_MT) MBROPT(*ADD)
cmd: CPYF FROMFILE(QSYSLOCALE/QLOCALESRC) TOFILE(QGPL/MYLOCALES) FROMMBR(EN_GB)
TOMBR(EN_GB_GMT) MBROPT(*ADD)
tzdiff - The time zone difference to the desired value a positive number represents the difference from GMT
dstname - The name of the time zone during daylight savings time
In the example below for the United States Eastern Time Zone, the value (tzdiff) should be set to 300. This represents 300
minutes (5 hours) after Greenwich Mean Time. The name of the time zone during Standard time (tname) is EST. The
name of the time zone during Daylight savings time (dstname) is EDT. Daylight saving time (dststart) starts the third
month of the year, the beginning of the second week, the first day of the week, and 7200 seconds (120 minutes) after
midnight local standard time. Daylight saving time ends (dstend) the tenth month of the year, the beginning of the third
week, the sixth day of the week, and 0 seconds after midnight local standard time. The daylight savings change (dstshift) is
3600 seconds or 1 hour.
cmd: WRKMBRPDM QGPL/MYLOCALES EN_US_ET
Figure 6: Modify the Locale Time Zone Specific File (EN_US_ET)
Columns . . . :
Edit
1 100
SEU==>
FMT **
300
0005.62 tname
"EST"
0005.63 dstname
"EDT"
10,3,6,0
As each time zone specific locale member is edited, the locale specific object must be generated. The commands below
will create the locale specific objects.
cmd: CRTLOCALE LOCALE('/QSYS.LIB/QGPL.LIB/ENUS_GMTN5.LOCALE')
SRCFILE('/QSYS.LIB/QGPL.LIB/MYLOCALES.FILE/EN_US_ET.MBR') CCSID(37)
TEXT('US - Eastern Time : New York GMT Negative 5')
cmd: CRTLOCALE LOCALE('/QSYS.LIB/QGPL.LIB/ENUS_GMTN6.LOCALE')
SRCFILE('/QSYS.LIB/QGPL.LIB/MYLOCALES.FILE/EN_US_CT.MBR') CCSID(37)
TEXT('US - Central Time : Chicago GMT Negative 6')
When the locale specific objects are generated, user profiles (user accounts) can be created and associated to their
appropriate time zone locale object. This is described immediately below. Notice below that each user has been assigned
'JDE' as its group profile and 'ONEWORLD' as its supplemental group profile. These new users will inherit the authorities of
and have access to all objects owned by users 'JDE' and 'ONEWORLD'.
cmd: CRTUSRPRF USRPRF(NEWYORK) USRCLS(*PGMR) INLPGM(JDEOW/BV3C)
TEXT('ONEWORLD - GMT_Minus_5') SPCAUT(*JOBCTL) JOBD(QGPL/ONEWORLD) GRPPRF(JDE)
OWNER(*GRPPRF)
SUPGRPPRF(ONEWORLD) LOCALE('/QSYS.LIB/QGPL.LIB/ENUS_GMTN5.LOCALE')
With the time zone specific user profile created, each time zone specific System Foundation instance can be modified to
use the time zone specific user as shown below. This change will start the EnterpriseOne services with specified user.
cmd: CHGJOBD JOBD(E900SYST0N/NETJOBD) USER(LONDON)
cmd: CHGJOBD JOBD(E900SYST5N/NETJOBD) USER(NEWYORK)
cmd: CHGJOBD JOBD(E900SYST6N/NETJOBD) USER(CHICAGO)
cmd: CHGJOBD JOBD(E900SYS/NETJOBD) USER(DENVER)
Third party products connecting to the EnterpriseOne database but bypassing EnterpriseOne services can leverage
platform operating system user accounts whose LOCALE specific setting matches the desired time zone. The command
below creates users with 'JDE' assigned as their group profile and 'ONEWORLD' as their supplemental group profile.
These new users will inherit the authorities of and have access to all objects owned by users 'JDE' and 'ONEWORLD'. Further by
setting OWNER to *GRPPRF this ensures that any objects created by these users will be owned by user 'JDE'.
Note: The EnterpriseOne proxy (system) users must also be updated to use the user profile
LOCALE('/QSYS.LIB/QGPL.LIB/xxxx.LOCALE') attribute. This will ensure that all UBE database table updates and the
UBE Submitted Job table's run time properly represent the user's associated time zone.
cmd: CRTUSRPRF USRPRF(OWJDEGMT) USRCLS(*PGMR)
TEXT('E1 DB USER - GMT') SPCAUT(*JOBCTL) GRPPRF(JDE) OWNER(*GRPPRF)
SUPGRPPRF(ONEWORLD) LOCALE('/QSYS.LIB/QGPL.LIB/ENGB_GMT.LOCALE')
JDE900SVR
07/27/11
CPU %:
.0
Elapsed time:
00:00:00
Active jobs:
23:05:22
395
Current
Opt
Subsystem/Job
User
Type
__
JDEE900
QSYS
SBS
CPU %
.0
Function
Status
DEQW
__
JDENET_K
DENVER
BCI
.0
PGM-JDENET_K
DEQW
__
JDENET_K
DENVER
BCI
.0
PGM-jvmStartPa
DEQW
__
NETWORK
DENVER
BCH
.0
PGM-JDENET_N
SELW
__
JDE900TZ0N
QSYS
SBS
.0
__
JDENET_K
LONDON
BCI
.0
PGM-JDENET_K
DEQW
__
JDENET_K
LONDON
BCI
.0
PGM-jvmStartPa
DEQW
LONDON
BCH
.0
PGM-JDENET_N
SELW
QSYS
SBS
.0
...
DEQW
...
__
NETWORK
__
JDE900TZ5N
__
JDENET_K
NEWYORK
BCI
.0
PGM-JDENET_K
DEQW
__
JDENET_K
NEWYORK
BCI
.0
PGM-jvmStartPa
DEQW
__
NETWORK
NEWYORK
BCH
.0
PGM-JDENET_N
SELW
__
JDE900TZ6N
QSYS
SBS
.0
__
JDENET_K
CHICAGO
BCI
.0
PGM-JDENET_K
DEQW
__
JDENET_K
CHICAGO
BCI
.0
PGM-jvmStartPa
DEQW
PGM-JDENET_N
DEQW
...
DEQW
...
__
__
NETWORK
QBATCH
CHICAGO
BCH
.0
QSYS
SBS
.0
SELW
DEQW
The JVMs can be configured with a time zone offset and should be configured to execute business logic in an
EnterpriseOne instance where the time zone matches that of the JVM. Changes to the JVM must be applied to the Java
arguments associated with the Application Server's instance, e.g. via the IBM WebSphere Administrative Console.
Figure 8: Java Generic Arguments for Time Zone Offset by JAS HTML Instance
VIRTUALSERVER
JAS HTML
TIMEZONE
JDE900TZ7N
I507WAS792
-Duser.timezone=GMT+7
Denver
JDE900TZ6N
I507WAS798
-Duser.timezone=GMT+6
Chicago
JDE900TZ5N
I507WAS797
-Duser.timezone=GMT+5
NewYork
JDE900TZ0N
I507WAS796
-Duser.timezone=GMT
London
Important: Different distributions of java and even varying java release levels derive time zones differently. When adding a java
argument (-Duser.timezone=GMT+7) to offset the Java Virtual Machine's (JVM) time one may find that time is derived as a
factor of system time compensated by the added java offset. In other cases time is a factor of Greenwich Mean Time (GMT)
coupled with the java argument offset, where GMT is calculated as the system's time compensated by the system's defined time
zone. Thus, it is important to check the JVM's specific job logs to ensure they represent the intended time zone.
Note: The JVM log messages shown below are from an Oracle WebLogic server; it includes the GMT offset notation as part of
the date-timestamp. This GMT offset notation does not appear in an IBM Websphere Server log date-timestamps.
Figure 9: Java Virtual Machine Logging Messages
a.
Login to the IBM WebSphere Administrative Console. From the left-hand entry menu expand the Servers node,
Server Types, and click on WebSphere application servers. Select the web container associated with the
JVM that will use the MT time zone.
Figure 10: Modify the Application Server Configuration(s)
b. Scroll down and expand the Java and Process Management node found under the Server
Infrastructure heading; click Process Definition.
Figure 11: Navigate to the Java and Process Management | Server Infrastructure | Process Definition
Click the Java Virtual Machine hyperlink found under Additional Properties. Scroll downward to the bottom of the
web page and locate the Generic JVM arguments field. Add the time zone value offset to the value(s) already
found in this field. For instance: , -Duser.timezone=GMT+7 would be added to the existing value making the
value string: -Djava.awt.headless=true, -Duser.timezone=GMT+7. Note that the , (comma or
semicolon) delimiter may vary depending upon the operating system platform on which the WebSphere Application
Server is running.
Figure 12: Modify the Java Virtual Machine | Generic JVM arguments to use a specific Time Zone
d. Click the Apply button (shown in the figure above). Then click the Save button two more times from different
Save forms (shown below). Stop and restart the web server, then check the server's logs to ensure the timestamp
value represents the intended time.
Figure 13: Save and Apply the Change Made to the Application Server
a.
Login to the Oracle WebLogic Administrative Console. From the left-hand menu control Domain Structure
expand the Environment node and click the Servers hyperlink.
Figure 14: Navigate to the Configured Domain Servers
b. Select the server (web container) associated with the JVM that will use the MT time zone, e.g. dendell06_html_7003.
Figure 15: Select the Web Container for Modification
15
Navigate to the upper left-hand corner of the Oracle WebLogic Administrative Console page and click the Lock &
Edit button.
Figure 16: Select Server Start Tab
d. Click the Server Start tab to change the server's configuration focus. Scroll downward to the bottom of the web
page and locate the Arguments field. Add the time zone value offset to the value(s) already found in this field.
For instance: , -Duser.timezone=GMT+7 would be added to the existing value making the value string: XX:MaxPermSize=128m -Xms32m -Xmx768m -Duser.timezone=GMT+7. Note: Take care not to
introduce a carriage return. The arguments must be read as a contiguous string without any edit controls.
Figure 17: Modify the Java Arguments Found in the Server Start Tab
16
Scroll down and click the Save button found at the bottom portion of the Server Start screen.
Figure 18: Click the Save Button Found at the Bottom of the Server Start Tab
f.
g.
17
18
Each JD Edwards EnterpriseOne JAS server should be linked to a JD Edwards EnterpriseOne Enterprise Server with a
similar time zone setting. Ensure that the JAS.INI & JDBJ.INI file's are set to the time zone specific values as shown
directly below. These values should match the targeted Enterprise Server.
JAS.INI
[SECURITY]
NumServers=1
<-- Set the value to a time zone specific EntSrvr hostname, e.g. London
SecurityServer=JDE900TZ0N
[JDENET]
serviceNameConnect=6015
[OWWEB]
PathCodes=('PD900')
DefaultEnvironment=JPD900LON
[PACKAGE BUILD]
<-- Set the value to a time zone specific environment, e.g. London JPD900LON
;PackageDomainServer=DEFAULT
;PackageDomainPort=0
PackageDomainServer=JDE900TZ0N
<-- Set the value to a time zone specific environ, e.g. London JPD900LON
PackageDomainPort=6015
JDBJ.INI
[JDBj-SPEC DATA SOURCE] <-- Recommended separate serialized objects | independent of package deployments between instances
databaseType=I
serverPort=0
name=SEROBJ900 PD900 LONDON
database=
server=DENI507B
physicalDatabase=PD900LON7
owner=
lob=true
unicode=true
user=JDE
password=OR@CL3Z0N3
[JDBj-BOOTSTRAP SESSION]
user=JDE
password=OR@CL3Z0N3
role=*ALL
environment=JPD900LON
<-- Set the value to a time zone specific environment, e.g. London JPD900LON
19
JD Edwards EnterpriseOne tools release 9.1 introduced code changes making it possible for the JD Edwards
EnterpriseOne Services to bind its listening port to a time zone specific virtual IP address and virtual hostname. A new
JDE.INI file setting has been introduced, e.g. stanza and statement [JDENET] listenOnSpecificIP. When the
listenOnSpecificIP statement is enabled the EnterpriseOne JDENET Services will bind only to the virtual
hostname's IP address named as the JDE.INI [CLUSTER] PrimaryNode value. If the JDE.INI file's [JDENET]
listenOnSpecificIP is disabled, the JDENET port (6015) binding occurs at the global IP address level 0.0.0.0; this
global IP binding affects all physical and virtual IP addresses found on the local machine.
JDE.INI
[JDENET]
listenOnSpecificIP=1
[CLUSTER]
PrimaryNode=JDE900TZ0N
One can use JD Edwards EnterpriseOne OCM or environments to isolate users to a particular set of time zone servers.
Isolating users to a particular time zone by environment creates a more clear delineation between time zone users and
servers. The instructions below explain the environment delineation approach.
1.
2.
From the Deployment Server login to the DEP900 environment and copy an existing environment to a time zone
specific environment, e.g. JPD900 to JPD900LON for London, JPD900 to JPD900NYC for New York City, etc.
Modify the EnterpriseOne Object Configuration Manager (OCM) so that Logical Data Source mappings use the
appropriate target time zone server. For instance the JPD900LON environment would direct its logic to
JDE900TZ0N. These changes must be made to System 'System - 900' and ALL Server Map data sources
'JDE900TZ0N - 900 Server Map'. A filtered listing of System OCM mappings is shown directly below.
SELECT T0.OMENHV, T0.OMOBNM, T0.OMDATP, T0.OMUGRP,
T0.OMFUNO, T0.OMSTSO
FROM SY900.F986101 T0, SY900.F98611 T1
WHERE T1.OMOCM1 = 'SVR' AND T0.OMDATP = T1.OMDATP
AND T0.OMOBNM = 'DEFAULT'
ORDER BY T0.OMENHV, T0.OMDATP
OMENHV
OMOBNM
OMDATP
OMUGRP
OMFUNO
OMSTSO
JPD900CHI
DEFAULT
JDE900TZ6N
*PUBLIC
UBE
AV
JPD900CHI
DEFAULT
JDE900TZ6N - Logic
*PUBLIC
BSFN
AV
JPD900DEN
DEFAULT
JDE900TZ7N
*PUBLIC
UBE
AV
JPD900DEN
DEFAULT
JDE900TZ7N - Logic
*PUBLIC
BSFN
AV
JPD900LON
DEFAULT
JDE900TZ0N
*PUBLIC
UBE
AV
20
3.
4.
JPD900LON
DEFAULT
JDE900TZ0N - Logic
*PUBLIC
BSFN
AV
JPD900NYC
DEFAULT
JDE900TZ5N
*PUBLIC
UBE
AV
JPD900NYC
DEFAULT
JDE900TZ5N - Logic
*PUBLIC
BSFN
AV
PD900CHI
DEFAULT
JDE900TZ6N
*PUBLIC
UBE
AV
PD900CHI
DEFAULT
JDE900TZ6N - Logic
*PUBLIC
BSFN
AV
PD900DEN
DEFAULT
JDE900TZ7N
*PUBLIC
UBE
AV
PD900DEN
DEFAULT
JDE900TZ7N - Logic
*PUBLIC
BSFN
AV
PD900LON
DEFAULT
JDE900TZ0N
*PUBLIC
UBE
AV
PD900LON
DEFAULT
JDE900TZ0N - Logic
*PUBLIC
BSFN
AV
PD900NYC
DEFAULT
JDE900TZ5N
*PUBLIC
UBE
AV
PD900NYC
DEFAULT
JDE900TZ5N - Logic
*PUBLIC
BSFN
AV
Create EnterpriseOne time zone specific roles. Associate the time zone specific environment to the time zone specific
role. Each EnterpriseOne user (role) is associated only with those environments that are linked to the user's respective
time zone.
Associate the EnterpriseOne user to the time zone specific role.
Figure 22: Time Zone Specific Environments / Roles / Users Assignments
VIRTUAL
SERVER
TIMEZONE
E1
TIMEZONE
ENVIRON
E1 USER
TIMEZONE
ROLE
JDE900TZ7N
Denver
JPD900DEN
JDETZ7N
JDE900TZ6N
Chicago
JPD900CHI
JDETZ6N
JDE900TZ5N
NewYork
JPD900NYC
JDETZ5N
JDE900TZ0N
London
JPD900LON
JDEGMT
SERVER MAP
LIBRARY
SVM900
SVM900TZ6N
SVM900TZ5N
SVM900TZ0N
21
SYSTEM
FOUNDATION
SERVER
HOST NAME
PORT
START
IPC
SERVER MAP
LIBRARY
E900SYST7N
JDE900TZ7N
6015
0001
SVM900
E900SYST6N
JDE900TZ6N
6015
2101
SVM900TZ6N
E900SYST5N
JDE900TZ5N
6015
4201
SVM900TZ5N
E900SYST0N
JDE900TZ0N
6015
6301
SVM900TZ0N
22
Column :
CMD ....+....1....+....2....+....3....+....4....+....5....+....6....+....7.
************Beginning of data**************
; JD Edwards initialization file INI(JDE)
; AS/400 specific version - E900
[JDE_CG]
CLASSPATH=/E900SYS/classes/xalan.jar:/E900SYS/classes/xerces.jar:/E900S
ServerPackageSleep=60
[DEBUG]
Output=FILE
Col
CMD ....+....1....+....2....+....3....+....4....+....5....+...
[DEBUG]
Output=NONE
Trace=FALSE
DebugFile=/JDE900/JDEDEBUG
JobFile=/JDE900/JDE.LOG
JDETSFile=/JDE900/JDETS.LOG
LogErrors=1
ClientLog=0
KeepLogs=1
23
Colum
CMD ....+....1....+....2....+....3....+....4....+....5....+....6
internalQueueTimeOut=30
FilePacketBufferSize=32768
netTemporaryDir=/JD Edwards/JDE_HOME/targets/JDE900TZ0N_EntSr
listenOnSpecificIP=1
<-- SET TO '1' FOR TIMEZONE SUPPORT
[JDENET_KERNEL_DEF1]
krnlName=JDENET RESERVED KERNEL
dispatchDLLName=JDENET
dispatchDLLFunction=JDENET_DispatchMessage
maxNumberOfProcesses=1
numberOfAutoStartProcesses=0
Go to the top of the file; type a 'T' in the 'Control: _' field and press ENTER. Find startIPCKeyValue and
replace the value.
Figure 28: Edit the JDE.INI to Modify the startIPCKeyValue
Edit File: /E900SYST0N/INI/JDE.INI
Record :
73
of
689 by 10
Control : F startIPCKeyValue
CMD ....+....1....+....2....+....3....+....4
startIPCKeyValue=6301
<-- MODIFY TO UNUSED SEGMENT, e.g. 6301
avgResourceNameLength=40
maxMsgqEntries=1024
maxMsgqBytes=65536
ipcTrace=0
[JDENET]
serviceNameListen=6015
serviceNameConnect=6015
Go to the top of the file; type a 'T' in the 'Control: _' field and press ENTER. Find DatabaseName2 and
replace the value.
Figure 29: Edit the JDE.INI to Modify the Server Map Library Name
Edit File: /E900SYST0N/INI/JDE.INI
Record :
278
of
689 by 10
Control : F DatabaseName2
CMD ....+....1....+....2....+....3....+....4....+....5...
DatabaseName2=SVM900TZ0N
<-- MODIFY TO SVM900TZ0N
DatabaseInstance=
ServerPort=0
JDBNETUse=N
UnicodeFlag=Y
LOBFlag=Y
DatabaseProgramMax=-1
DatabaseProgramInitial=10
24
Go to the top of the file; type a 'T' in the 'Control: _' field and press ENTER. Find instanceName and
replace the value.
Figure 31: Edit the JDE.INI to Server Manager Instance Name
Edit File: /E900SYST0N/INI/JDE.INI
Record :
675
of
689 by 10
Control : F instanceName
CMD ....+....1....+....2....+....3....+....4....+....5....
instanceName=JDE900TZ0N_EntSrvr_TZ_neg_0_London
<-- MODIFY THIS VALUE
[BSFN MEMORY DIAGNOSTICS]
bmdLevel=0
allocFrequency=15000
memThresholdMB=100
bsfnName=
bsfnLevel=2
25
OMSRVR
OMDATB
JDE900SVR
OMOCM1
DB
JDE900SVR
DB
JDE900SVR
DB
JDE900SVR
DB
JDE900SVR
DB
JDE900SVR
DB
JDE900TZ7N
JDE900TZ7N
SVR
JDE900SVR
DB
JDE900TZ7N - Logic
JDE900TZ7N
SVR
JDE900TZ7N - RTE
JDE900TZ7N
SVR
JDE900TZ7N - XAPI
JDE900TZ7N
SVR
JDE900SVR
DB
JDBTSTLIB
JDE900SVR
JDBTSTLIB
DB
JDE900TZ0N
JDE900TZ0N
SVR
JDE900SVR
DB
JDE900TZ0N - Logic
JDE900TZ0N
SVR
JDE900TZ0N - RTE
JDE900TZ0N
SVR
JDE900TZ0N - XAPI
JDE900TZ0N
SVR
JDE900TZ5N
JDE900TZ5N
SVR
JDE900SVR
DB
JDE900TZ5N - Logic
JDE900TZ5N
SVR
JDE900TZ5N - RTE
JDE900TZ5N
SVR
JDE900TZ5N - XAPI
JDE900TZ5N
SVR
JDE900TZ6N
JDE900TZ6N
SVR
JDE900SVR
DB
JDE900TZ6N - Logic
JDE900TZ6N
SVR
JDE900TZ6N - RTE
JDE900TZ6N
SVR
JDE900TZ6N - XAPI
JDE900TZ6N
SVR
LOCAL
LOCAL
Planner - 900
SVR
Local - DV900
(local)
EnterpriseOne SSELocal
DB
(local)
EnterpriseOne SSELocal
DB
Local - PD900
(local)
EnterpriseOne SSELocal
DB
(local)
EnterpriseOne SSELocal
DB
OWJRNL
JDE900SVR
OWJRNL
DB
JDE900SVR
DB
System - 900
JDE900SVR
System - 900
DB
System - 900NJ
JDE900SVR
System - 900NJ
DB
Versions - DV900
JDE900SVR
Versions - DV900
DB
26
JDE900SVR
Versions - PD900
DB
WAS7PDTZ0N
JDE900SVR
WAS7PDTZ0N
DB
WAS7PDTZ5N
JDE900SVR
WAS7PDTZ5N
DB
WAS7PDTZ6N
JDE900SVR
WAS7PDTZ6N
DB
WAS7PDTZ7N
JDE900SVR
WAS7PDTZ7N
DB
QCPORTNM
QCJOBQUE
JDE900SVR
6015
QBATCH
JDE900TZ0N
6015
QBATCH
JDE900TZ5N
6015
QBATCH
JDE900TZ6N
6015
QBATCH
JDE900TZ7N
6015
QBATCH
SKPORTNUM
SKPATHCD
SKMCHDETTYP
SKSERSHP
JDE900SVR
6015
PD900
31
PD900FC
JDE900SVR
6015
PD900
33
JDE900TZ0N
6015
PD900
31
PD900FC
JDE900TZ0N
6015
PD900
33
JDE900TZ5N
6015
PD900
31
PD900FC
JDE900TZ5N
6015
PD900
33
JDE900TZ6N
6015
PD900
31
PD900FC
JDE900TZ6N
6015
PD900
33
JDE900TZ7N
6015
PD900
31
PD900FC
JDE900TZ7N
6015
PD900
33
Other Enterprise Server tables with specific references to the virtual host name(s).
Table Description:
SQL Statement:
Machine Master:
Machine Detail:
27
Each time zone instance should have an EnterpriseOne JDE CNC user whose OCM mappings point to the correct time
zone specific server. The Deployment Server's local database should also have a record of each JDE CNC time zone
instance user(s). When deploying a package, login to the Deployment Server with the appropriate user, e.g. JDENYC.
This user should be used to deploy a package against its associated time zone specific server.
Note: Failure to use a time zone specific JDE CNC user to deploy a package could lead to unpredictable mutex wait
locking. For example, a user logs in as JDE to deploy a package to virtual host JDE900TZ6N. Following a successful
deploy the same user deploys a package against virtual host JDE900TZ0N. Because JDENET communication is now
active between the workstation and two servers, e.g. JDE900TZ6N, JDE900TZ0N potentially both servers will throw a
mutex wait to suspend all activity so that the package can be successfully deployed. To mitigate this JDENET crosscommunication opportunity, login with the appropriate JDE CNC user to deploy a package on each virtual server.
Package Deployment for the IBM i Platform
Since the IBM i platform has a flat QSYS library and IFS structure there can only be 'one' package location, e.g.
QSYS/PD900FE and /OneWorld/Packages/PD900FE. If one were to use the compressed package option on the IBM i
platform where more than one host or virtual host EnterpriseOne foundation instance share a common package, the
deploy process will step over itself. This occurs as the deploy process attempts to replace the pre-existing package library
and IFS folder objects.
On the IBM i platform build a single package without the compression option, choosing either the primary host or a
virtual host. For example package PD900FE is built against the primary time zone server's hostname. Three other virtual
host EnterpriseOne instances are active on the same IBM i platform server. Each have their own application foundation
runtime SPECs (via the INI addendum). To deploy a common package to each virtual server we must first manually
create a 'build' record for each of these virtual host servers. The instructions that follow create the server package records
necessary for package deployment. This process mimics the record creation process that would occur were a successful
package build were performed against each additional virtual host server(s).
Package PD900FE is built against the primary server, e.g. JDEENTSVR.
10.123.123.51
JDE900TZ6N.DOMAIN.COM JDE900TZ6N
10.123.123.52
JDE900TZ5N.DOMAIN.COM JDE900TZ5N
10.123.123.53
JDE900TZ0N.DOMAIN.COM JDE900TZ0N
10.123.123.54
28
Manually create a record(s) in the F96021 table for each time zone specific virtual host server. The yellow highlighted
font represents the target virtual host names, while the blue highlighted font identifies the package name and build server
name.
'PD900FE' AND
'PD900FE' AND
'PD900FE' AND
2.
Create an INF file for each 'virtual host' server based upon the original INF file.
cp \\<DepSrvrNme>\E900\PD900\package\PD900FE\AS400V7R1M0\JDEENTSVR.INF
\\<DepSrvrNme>\E900\PD900\package\PD900FE\AS400V7R1M0\JDE900TZ0N.INF <-- edit server name w/i file
cp \\<DepSrvrNme>\E900\PD900\package\PD900FE\AS400V7R1M0\JDEENTSVR.INF
\\<DepSrvrNme>\E900\PD900\package\PD900FE\AS400V7R1M0\JDE900TZ5N.INF <-- edit server name w/i file
cp \\<DepSrvrNme>\E900\PD900\package\PD900FE\AS400V7R1M0\JDEENTSVR.INF
\\<DepSrvrNme>\E900\PD900\package\PD900FE\AS400V7R1M0\JDE900TZ6N.INF <-- edit server name w/i file
3.
Edit the virtual host INF files replacing the original build machine name with the virtual host name.
NOTEPAD
\\<DepSrvrNme\E900\PD900\package\PD900FE\AS400V7R1M0\JDE900TZ0N.INF
[SERVER PACKAGE]
PackageName=PD900FE
Type=FULL
Platform=AS400V7R1M0
BuildMachine=JDEENTSVR <-- change to JDE900TZ0N
BuildPort=6015
...
29
The figure below depicts a high availability 'active-active' load balancing cluster solution. In this example there are two server
groups shown in delineated node group sets. Associated with each node group is a JDEdwards EnterpriseOne Enterprise
(Logic) Server and JAS HTML Server. Each Enterprise Server is known by its physical node name (JDESRVA) and its
logical cluster name (JDEENTSRV). The importance of pairing a logical server and JAS HTML server into a set will soon
be made clear.
Figure 32: Standard High Availability 'Active-Active' Load Balancing Cluster
30
JDBJ.INI:
[JDBj-SPEC DATA SOURCE]
...
name=SerObj_B2
database=
server=JDEE1DB
physicalDatabase=SEROBJB2
...
Important: Failure to override the auto-discovery process may cause the serialized objects of an 'active'
server to be unexpectedly truncated due to a perceived SPEC mismatch.
7) Test the server set by connecting to the HTML servers by physical IP address (as opposed to the logical IP
address) so as to bypass the load-balancing mechanism.
8) Once the server set is certified, make the server set eligible for use within the cluster.
9) Repeat this process for each server set until all sets have been updated with the new deployed package.
The figure further below depicts a time zone specific high availability 'active-active' load balancing cluster solution. In this
case the logical server name is based upon the time zone that is represents, e.g. LONDON. Consider too that additional
multiple virtual host servers will exist on each physical server, e.g. CHICAGO, TORONTO, DENVER. For purposes of
discussion we will focus on a single time zone server named LONDON. As before the two server groups are shown in
delineated sets. All aspects of the time zone high availability 'active-active' load balancing cluster solution's layout are
identical to those in a standard load balancing configuration with one significant exception, the ability to address a specific
virtual node server.
To explain this difference consider that when updating one server node without impacting another one must deploy a
package to the server's physical host name rather than its logical cluster name. Since each server may have multiple virtual
servers we cannot use the server's true physical server name to deploy a package. Rather we must use a host name alias to
31
10.123.123.52
10.123.123.53
10.123.123.54
32
10.123.123.92
10.123.123.93
10.123.123.94
2) The WINS and/or DNS server must distinguish between the node specific host names, while the common logical
server name uses a logical IP address. From the perspective of all client servers, the time zone servers are accessible via
their logical IP addresses. Traffic to this logical IP address is routed by the intelligent network appliance to the appropriate backend
node server. The logical IP address is then transformed to the physical IP address via network address translation (NAT). 'Sticky IP' is
used to create an affinity between the client and backend node server so that communication persists between these
two servers.
WINS DNS Perspective:
10.123.123.11
CHICAGO.DOMAIN.COM CHICAGO
10.123.123.12
TORONTO.DOMAIN.COM TORONTO
<--
10.123.123.13
LONDON.DOMAIN.COM LONDON
<--
10.123.123.14
DENVER.DOMAIN.COM DENVER
10.123.123.51
CHICAGOA.DOMAIN.COM CHICAGOA
10.123.123.52
TORONTOA.DOMAIN.COM TORONTOA
10.123.123.53
LONDONA.DOMAIN.COM LONDONA
10.123.123.54
DENVERA.DOMAIN.COM DENVERA
10.123.123.91
CHICAGOB.DOMAIN.COM CHICAGOB
10.123.123.92
TORONTOB.DOMAIN.COM TORONTOB
10.123.123.93
LONDONB.DOMAIN.COM LONDONB
10.123.123.94
DENVERB.DOMAIN.COM DENVERB
3) Use the JD Edwards EnterpriseOne 'Add Server' plan to create and execute a plan to add each virtual node hostname, e.g.
LONDONA, LONDONB, TORONTOA, TORONTOB, CHICAGOA, CHICAGOB, DENVERA, DENVERB.
4) Server packages should then be deployed against the specific virtual node hostname, e.g. LONDONA. This will ensure
that while one high availability 'active-active' load balancing cluster node is updated, the other remains running without
incident.
33
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Worldwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200
oracle.com
Copyright 2011, Oracle. All rights reserved.
This document is provided for information purposes only and the
contents hereof are subject to change without notice.
This document is not warranted to be error-free, nor subject to any
other warranties or conditions, whether expressed orally or implied
in law, including implied warranties and conditions of merchantability
or fitness for a particular purpose. We specifically disclaim any
liability with respect to this document and no contractual obligations
are formed either directly or indirectly by this document. This document
may not be reproduced or transmitted in any form or by any means,
electronic or mechanical, for any purpose, without our prior written permission.
Oracle, JD Edwards, PeopleSoft, and Siebel are registered trademarks of Oracle
Corporation and/or its affiliates. Other names may be trademarks
of their respective owners.
34