JDE SSO with Azure AD with MFA
Here you will find Technical Stuff about JDEdwards EnterpriseOne, Oracle, SQL Server, Solaris, AS/400, Linux, UDB/DB2, unix, WebSphere OAS, Weblogic.
Find Duplicate Submitted Jobs JDE
WITH CTE(JCEXEHOST,JCFNDFUF2, duplicatecount)
AS (SELECT JCEXEHOST,JCFNDFUF2, ROW_NUMBER() OVER(PARTITION BY JCEXEHOST,JCFNDFUF2 ORDER BY JCEXEHOST,JCFNDFUF2) AS DuplicateCount
FROM SVM920.F986110 WHERE JCJOBSTS IN ('W') AND JCORGHOST='Enterprise_Server')
SELECT * FROM CTE WHERE DuplicateCount > 1;
Delete Duplicate Submitted Jobs JDE
WITH CTE(JCEXEHOST,JCFNDFUF2, duplicatecount)
AS (SELECT JCEXEHOST,JCFNDFUF2, ROW_NUMBER() OVER(PARTITION BY JCEXEHOST,JCFNDFUF2 ORDER BY JCEXEHOST,JCFNDFUF2) AS DuplicateCount
FROM SVM920.F986110 WHERE JCJOBSTS IN ('W') AND JCORGHOST='Enterprise_Server')
DELETE FROM CTE WHERE DuplicateCount > 1;
JDE Workflow Table
E1: WRKFLW: Frequently Asked Questions on EnterpriseOne Workflow (Doc ID 1329683.1)
F98800 Process Master
F98800D Process Master Alternate Description
SELECT
vrpid, vrvers, CAST ( CAST ( vrpodata AS VARBINARY(MAX)) AS NVARCHAR(MAX))
[POVal], vrvcd as DateChanged from pd920.f983051
where
(vrpid like 'P%' or vrpid like 'R%')
and vrvcd
> 12360
order by
vrvcd DESC;
SELECT
vrpid, vrvers, CAST ( CAST ( vrpodata AS VARBINARY(MAX)) AS NVARCHAR(MAX))
[POVal] from pd920.f983051
where
(vrpid like 'P%' or vrpid like 'R%') and CAST ( CAST ( vrpodata AS
VARBINARY(MAX)) AS NVARCHAR(MAX)) like '%:\%' or CAST ( CAST ( vrpodata AS
VARBINARY(MAX)) AS NVARCHAR(MAX)) like '%\\%'
order by
vrpid;
SELECT
vrpid, vrvers, CAST ( CAST ( vrpodata AS VARBINARY(MAX)) AS NVARCHAR(MAX))
[POVal] from pd920.f983051
where
(vrpid like 'P%' or vrpid like 'R%') and CAST ( CAST ( vrpodata AS
VARBINARY(MAX)) AS NVARCHAR(MAX)) like '%:\%' or CAST ( CAST ( vrpodata AS
VARBINARY(MAX)) AS NVARCHAR(MAX)) like '%\\%'
and vrvcd
> 123060
order by
vrpid;
select cast(substring(uobindta,1,8000) as varchar(8000)) from PD920.F98950;
Are they Hosted? If yes where -?
JDE
Detail –
Tool Release
–
Bitness
-
Batch
Server – OS/RAM/CPU
Database
Server and Version –
Database
Server - OS/RAM/CPU
JDE –
Since
when the issue is happening ?
Any
recent changes done at hardware level or JDE Software (New Promotion) or Third
Party ?
Last
Full Package build date ?
Run
Report R9698711 and see missing index as per JDE Standard?
Does Job
remain in Wait Status long enough before start Processing?
Is this Standard
or Using custom? Custom BSFN, RDA or
Table etc ?
Can Job
be run with AntiVirus turn off on Enterpriser and Database Server and See performance?
Does
Payroll Job Run Faster if it run’s in single threaded Queue ?
Is there
specific time when Job run faster and time when Job run slower ?
What
parameter is the comparison of Job performance?
Does
Same Job run faster in one environment vs other environment?
Does any
other Job is slower
DBA -
Verify
Database is performance ?
Check Index
on Database?
Check
Fragmentation on Database?
Check
Database Backup timing and see if timing is conflict when the job is running?
Infra
Team
Check Performance
of System for last 10 days. Provide
Screen Shot for monitoring ?
Which
Antivirus running and is JDE Folder excluded ?
CNC Tables
F986101 - Object Configuration Master
F98611 - Data Source Master
F98230 - OMW System Settings
F95921 - Role Relationships Table
F9654 - Deployment Locations Definition
F9651 - Machine Detail
F9650 - Machine Master
F00950 - Security Workbench Table
F00945 - Release Master
F00942T
F00941 - Environment Detail - One World
F00942 - Object Path Master File
F0094 - Library List Master File
F0092 - Library Lists - User
ESU Table
F9670 - Software Update Master Table
F9671 - Software Update Detail Table
F9672 - Software Update Pathcode Information
F98881 - Specification Merge Logging File
F988810 - SpecMerge Tracking
Package Tables
F98220
F98221
F98222
F98223
F98224
Package Table
F9603
F96511
F98825
F98226
Understanding Kernel Refresh
To optimize overall system workload into logical segments, JD Edwards EnterpriseOne assigns processing tasks to various kernel processes running on a JD Edwards EnterpriseOne Enterprise Server. These kernels use static and dynamic database connections at process initiation and maintains those connections to a database for the entire EnterpriseOne process life cycle. In case of any interruption to the database connection or connection sessions therein, the connection or session must be recovered or restarted. Understanding how static and dynamic EnterpriseOne database connections work and their impact on the JD Edwards system is important.
The JDBC interface of the EnterpriseOne HTML Server is a single-process connection to a database; on the other hand, multiple connections are made through the Enterprise Server kernel processes using JD Edwards EnterpriseOne CallObject kernels. The EnterpriseOne HTML Server depends on communication to the Enterprise Server Security kernel for authentication and other security process requests to function properly; thus loss of database connections on the Enterprise Server Security and Metadata kernel processes has a subsequent downstream effect on the EnterpriseOne HTML Server performance.
Kernels that are classified as static use a bootstrap login to establish the connection. This means that the login credentials are stored in and read from the jde.ini of the Enterprise Server. This is called the login environment. Unlike dynamic connections, a login to a static kernel is never logged out during the process lifetime. Again, this is because unlike dynamic connections, a static login environment is not subject to timeouts due to inactivity or logouts. Under normal conditions, these static kernels are only restarted when the Enterprise Server is restarted. Otherwise static kernels can only be restarted by manually killing the process and restarting it.
Among the key functions of a static kernel are database connections. If the connection to the database is temporarily lost for any reason such as network unavailability, the kernels have fault-tolerant logic to retry the connection for up to 75 seconds reusing the same connection. If the connection cannot be reestablished within 75 seconds, the process is failed. As previously mentioned, an entire static process can only be restarted by either restarting the Enterprise Server or by manually killing and restarting the process.
In order to avoid the situation where the database connection within a kernel process are in a failed state (timed out for more than 75 seconds) that is unknown to the system, functionality is added to Server Manager to refresh those database connections in static environments either periodically or on demand. This functionality is only available to an Admin user for Server Manager. When invoked, this function refreshes each static kernel for all database connections. The list of such static kernels may change from release to release, so it is not important that they be individually listed. Additionally, a static environment type, such as Security, may include multiple kernels of the same type. In such cases, this function will refresh each kernel in a static environment type.
It is important to note that the intent of a "refresh" is primarily to reestablish the database connections without resorting to a destructive "kill" action. As such, a refresh preserves the other logical states in the kernel and the kernel maintains the same internal functional state as it was prior to the refresh of the database connections.
One exception to the static kernel model is the Workflow kernel. This kernel can only free expired environments, that is, environments that have timed out. If a workflow environment is still active, it will not be forcibly freed by the refresh process.
Automatic Kernel Refresh
In order to avoid disrupting normal processing, the JD Edwards kernel automatic kernel refresh logic only executes on an idle kernel process. If a kernel uses multiple threads, the logic will wait to refresh until all threads are idle. Basically a refresh involves a logout and a bootstrap login which reestablishes the database connections either using existing connections or establishing new connections; thus ensuring the connections are valid. This logout/login process does not kill a process or establish a new process - it reuses the existing process with reestablished database connections and returns the kernel to its prior state.
For implementation details, refer to the following section entitled: Using Automatic Kernel Refresh.
On-Demand Manual Kernel Refresh
You can use the Refresh Environments button to force a refresh for all static environments and CallObject kernels (which are dynamic kernels).
For static environments, the refresh will occur regardless of whether the kernel is idle. However, the refresh will wait until all threads of the kernel are complete. As with the automatic kernel refresh, the refresh does not kill a process or establish a new process - it reuses the existing process with reestablished database connections.
For CallObject kernels, these are dynamic kernels which are created by actual or programmatic user logins. Clicking the Refresh Environment button flags these kernels for recycling. In this case, recycling means the system will attempt to terminate a CallObject kernel gracefully, which means when all users of the CallObject kernel are either voluntarily logged out or forcibly logged out by an inactivity timeout (typically either 6 or 12 hours, for inactive or forced logouts, respectively). New CallObject kernels are created upon user login. This reestablishes the database connections for the kernel.
For example, in Production environments you might use the on-demand function if you are performing database patching during a planned maintenance window. In this case you would not be constrained by a short loss in system availability.
For implementation details, refer to the following section entitled: Using On-Demand Kernel Refresh.
https://docs.oracle.com/en/applications/jd-edwards/cross-product/9.2/eoism/understanding-kernel-refresh.html#u30154786
SELECT SERVERPROPERTY('Collation') AS 'Collation'
SELECT name, collation_name FROM sys.databases
The JDE Database Collation level should be Latin1_General_CI_AS_WS
msdb SQL_Latin1_General_CP1_CI_AS
DBA SQL_Latin1_General_CP1_CI_AS
JDE920 Latin1_General_CI_AS_WS
JDE_CRP Latin1_General_CI_AS_WS
JDE_DEVELOPMENT Latin1_General_CI_AS_WS
JDE_DV920 Latin1_General_CI_AS_WS
JDE_PRIST920 Latin1_General_CI_AS_WS
JDE_PS920 Latin1_General_CI_AS_WS
JDE_PY920 Latin1_General_CI_AS_WS
JDE_PD920 Latin1_General_CI_AS_WS
JDE_PRODUCTION Latin1_General_CI_AS_WS
In order to do first 64 Bit Full package for Fresh Install (when 32 bit Package not build), then add these specs to Base Full package.
Add Specs to Full Package -
INSERT INTO DV920.F98710DV920FA SELECT * FROM DV920.F98710 WHERE THOBNM = 'F00942T';
INSERT INTO DV920.F98710DV920FA SELECT * FROM DV920.F98710 WHERE THOBNM = 'F98780R';
INSERT INTO DV920.F98710DV920FA SELECT * FROM DV920.F98710 WHERE THOBNM = 'F98780H';
INSERT INTO DV920.F98711DV920FA SELECT * FROM DV920.F98711 WHERE TDOBNM = 'F00942T';
INSERT INTO DV920.F98711DV920FA SELECT * FROM DV920.F98711 WHERE TDOBNM = 'F98780R';
INSERT INTO DV920.F98711DV920FA SELECT * FROM DV920.F98711 WHERE TDOBNM = 'F98780H';
INSERT INTO DV920.F98712DV920FA SELECT * FROM DV920.F98712 WHERE TPOBNM = 'F00942T';
INSERT INTO DV920.F98712DV920FA SELECT * FROM DV920.F98712 WHERE TPOBNM = 'F98780R';
INSERT INTO DV920.F98712DV920FA SELECT * FROM DV920.F98712 WHERE TPOBNM = 'F98780H';
INSERT INTO DV920.F98713DV920FA SELECT * FROM DV920.F98713 WHERE TLOBNM = 'F00942T';
INSERT INTO DV920.F98713DV920FA SELECT * FROM DV920.F98713 WHERE TLOBNM = 'F98780R';
INSERT INTO DV920.F98713DV920FA SELECT * FROM DV920.F98713 WHERE TLOBNM = 'F98780H';
Start Weblogic Admin Server, Node Manager and Server Manager Agent on Linux
1 Create system service files:
1.1 adminserver system service file
# vi /usr/lib/systemd/system/wls_adminserver.service
----------------------------------------------------
[Unit]
Description=WebLogic Adminserver Service
After=network.target
[Service]
Type=simple
WorkingDirectory=/apps/oracle/middleware/user_projects/domains/E1_HTTP
ExecStart=/apps/oracle/middleware/user_projects/domains/E1_HTTP/bin/startWebLogic.sh
ExecStop=/apps/oracle/middleware/user_projects/domains/E1_HTTP/stopWebLogic.sh
User=oracle
Group=oinstall
[Install]
WantedBy=multi-user.target
1.2 nodemanager system service file
# vi /usr/lib/systemd/system/wls_nodemanager.service
------------------------------------------------------
[Unit]
Description=WebLogic NodeManager Service
After=network.target
[Service]
Type=simple
WorkingDirectory=/apps/oracle/middleware/user_projects/domains/E1_HTTP
ExecStart=/apps/oracle/middleware/user_projects/domains/E1_HTTP/bin/startNodeManager.sh
ExecStop=/apps/oracle/middleware/user_projects/domains/E1_HTTP/bin/stopNodeManager.sh
User=oracle
Group=oinstall
[Install]
WantedBy=multi-user.target
1.3 JDE SM Agent system service file
# vi /usr/lib/systemd/system/wls_smagent.service
------------------------------------------------------
[Unit]
Description=Server Manager Agent Service
After=network.target
[Service]
Type=oneshot
WorkingDirectory=/apps/jde_home_agent/SCFHA
ExecStart=/apps/jde_home_agent/SCFHA/bin/startAgent
ExecStop=/apps/jde_home_agent/SCFHA/bin/stopAgent
RemainAfterExit=yes
User=oracle
Group=oinstall
[Install]
WantedBy=multi-user.target
3) Test the system service :
3.1 start system service
# systemctl start wls_adminserver.service
# systemctl start wls_nodemanager.service
# systemctl start wls_smagent.service
3.2 stop system service
# systemctl stop wls_adminserver.service
# systemctl stop wls_nodemanager.service
# systemctl stop wls_smagent.service
4) Set the service to start automatically at systm reboot :
# systemctl enable wls_adminserver.service
# systemctl enable wls_nodemanager.service
# systemctl enable wls_smagent.service
# systemctl list-unit-files|grep wls
JDE Excel Date Conversion
Julain to Gregorian Date
=DATE(YEAR("01/01/"&TEXT(1900+INT(A1/1000),0)),MONTH("01/01/"&TEXT(1900+INT(A1/1000),0)),DAY("01/01/"&TEXT(1900+INT(A1/1000),0)))+MOD(A1,1000)-1
Gregorian to Julian
=(YEAR(A1)-2000+100)*1000+A1-DATE(YEAR(A1),"01","01")+1
1. View Time Zone
Timedatectl
2. List Time Zone
timedatectl list-timezones
timedatectl list-timezones |grep Denver
timedatectl list-timezones | grep York
3. Set Time Zone
Based on timezone value need to set here is eg to set Denver or New York Time Zone
timedatectl set-timezone America/Denver
timedatectl set-timezone America/New_York
4.View Time Zone to verify timezone is set as required
Timedatectl
Reference - https://linuxize.com/post/how-to-set-or-change-timezone-in-linux/
To see List of Object
1. List of Object Not-Checked Out and No- Token
SELECT FROM SY920.F98222 WHERE POOMWCHS='0' AND 'POOOMWOST='02' AND POOMWPOS1='0' AND POOMWPON1=0 AND POOMWPRJID='Project Name'
2. List of Object Not-Checked Out but have Token
SELECT FROM SY920.F98222 WHERE POOMWCHS='0' AND 'POOOMWOST='02' AND POOMWPOS1='1' AND POOMWPRJID='Project Name'
3. List of Object Checked Out and have Token
SELECT FROM SY920.F98222 WHERE POOMWCHS='1' AND 'POOOMWOST='03' AND POOMWPOS1='1' AND POOMWPRJID='Project Name'
4. JDE OMW Token Release using SQL
UPDATE SY920.F98222 SET POOMWPOS1='0',POOMWPON1=0 WHERE POOMWOST='02' AND POOMWPOS1='1' AND POOMWPRJID LIKE '%2022%'
Print GC Detail for Java in Weblogic. Add this parameter in server start section of Managed Server and restart service
Create Folder D:\Temp\GCLOG
-Xloggc:D:\Temp\GCLOG\Prod_3278.log -verbose:gc -XX:+PrintGCDateStamps -XX:-PrintGCDetails
Restart Service and see GC logs in D:\Temp\GCLOG
To View Log you can see in Power Shell also using
cd D:\Temp\GCLOG
Get-Content -Path Prod_3278.log -Tail 50
Oracle Support page to Compare Apps & Tools release Net Changes
The above commands will result in a screen similar to the one below:
Please set only ASM Disk Group to INDEX_PATH and TABLE_PATH.