CNC Tips & Tricks for E1 9 - Quest Oracle Community
Transcript of CNC Tips & Tricks for E1 9 - Quest Oracle Community
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Marcelo Tamassia
ā¢ Founding Partner @ EmeraldCube Solutions
ā¢ Responsible for all Engineering and R&D initiatives @ ECS
ā¢ University of Florida MBA
ā¢ 19 years of tech industry
ā¢ 14 years of JDE consulting in South and North America
ā¢ Planned, designed, executed, and managed 90+ E1 implementations worldwide
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Teunis Aalberts
ā¢ Technology Consultant @ Forza
ā¢ Responsible for CNC Add On Solutions @ Forza
ā¢ Joined JDE in 1999
ā¢ 17 years CNC experience
ā¢ Visit us @ booth 624
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Agendaā¢ Intended Audience
ā¢ Best Practices & Tipsā¢ Performance
ā¢ Database Monitoring
ā¢ JDE CNC
ā¢ Packman
ā¢ Prism
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Forza Consulting
One-stop shop for JD Edwards
Extensive JD Edwards add-on portfolioāŖ AP Automation āŖ AR Automation āŖ Electronic Payments module āŖ Automated Package Build & DeploymentāŖ Self Service Password Reset solution āŖ Workload scheduler
Over 200 clients supported globally
Leading CNC Technology Department
Innovative Development Department
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Feedback Cards
Enter to Win a $100 American Express Gift Card
Fill out the EmeraldCube session feedback card. Drawing will be held at the end of the session.
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#1 Performance ā Track Enterprise Queriesā¢ Configure JDE.INI
ā¢ Set QueryExecutionTimeTreshold > 0 (start at 30 seconds)
ā¢ Search logs for ādbperfrq.cā
ā¢ JDE Log
6373/1 MAIN_THREAD Thu Jan 30 00:00:33.704811 dbperfrq.c770
doQueryDiagnostics: The following SQL query took 10 seconds which is equal to or greater than
QueryExecutionTimeThreshold (10 seconds) for E1User(MARK) with DBProxyUser(JDE).
6373/1 MAIN_THREAD Thu Jan 30 00:00:33.705162 dbperfrq.c782
SELECT * FROM PRODTA.F41021 WHERE ( LIPQOH <> 0.000000 OR LIPCOM <> 0.000000 OR LIHCOM <> 0.000000
OR LIPREQ <> 0.000000 OR LIQOWO <> 0.000000 OR LIQTTR <> 0.000000 OR LIQTO1 <> 0.000000 OR LIFCOM <>
0.000000 OR LIMCU <> ' 1001' OR LIITM > 1.000000 ) ORDER BY LIITM ASC,LIMCU ASC
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#1 Performance ā Track Enterprise Queriesā¢ Research Issue
ā¢ Determine type of process (JDE.LOG)ā¢ Talk to the user (shown on log message)
ā¢ Be mindful of row security impact on queries
ā¢ Involve your DBA (if you have one) to determine why the query is taking to long
ā¢ Bad Query/Inquireā¢ Missing Index(es)ā¢ Slow I/Oā¢ Locking/Blocking
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#2 Performance ā Tune JDE Kernels
ā¢ Make sure you have enough kernels of at least these:ā¢ Call Object: 6 to 12 users / multithread kernelā¢ Security: 40 to 60 users / kernelā¢ Metadata: 150 users / kernelā¢ Network: 1 process + 200 users / kernelā¢ UBE: 60 users / kernel
ā¢ Make sure you donāt have too manyā¢ Memory & Performance considerations
ā¢ E1: KER: EnterpriseOne Kernels Overview (Doc ID 961823.1)
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#3 Performance ā Compress Data
ā¢ Use database compressionā¢ SQL Enterprise 2008+ā¢ Oracle Enterprise 11g + Feature
ā¢ Resultsā¢ Data reduction of 60% to 90%ā¢ Reduced memory requirementsā¢ Reduce backup/restore timeā¢ Fewer I/Oā¢ 40% to 50% performance improvementā¢ 5% to 10% higher CPU consumption
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#3 Performance ā Compress Data
ā¢ Sample compression rates
Table Name Compression
F4111 Item Ledger File 76%
F0911 Account Ledger 73%
F0411 Accounts Payable Ledger 69%
F43121 Purchase Order Receiver File 69%
F4311 Purchase Order Detail File 68%
F9000 Task Master 62%
F0101 Address Book Master 61%
F4229 Sales Summary History File 56%
F0005 User Defined Code Types 54%
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#4 Performance ā Consider Solid State
ā¢ Most JDE E1 environments are I/O bound, not CPU boundā¢ Faster I/O most likely will result in faster overall E1 performanceā¢ Faster CPU might/ might not result in faster overall E1 performance
ā¢ Most JDE E1 environments are 2/3 reads and 1/3 writes
ā¢ Performance Comparison (IOMeter Database ā Average IO/s)ā¢ HDD 15K RPM: 445 IOPSā¢ SSD: 2300 IOPS
ā¢ Cost / GBā¢ HDD: 0.05 USDā¢ SSD: 0.80 USD
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#5 Performance ā Adjust JVM Heap
ā¢ JVM Process Memory
ā¢ OS memory limits per single processā¢ 32-bit, roughly 2GBā¢ 64-bit, theoretically 2,000 PB
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#5 Performance ā Adjust JVM Heap
ā¢ Garbage Collectionā¢ Lock (lock involved objects so they donāt mutate)ā¢ Mark (iterate through all objects)ā¢ Sweep (remove marked objects / reclaim memory)
ā¢ Why do we care?ā¢ Garbage Collection relationship with performance
ā¢ Baseline for 50 usersā¢ 32-bit: 1.5 Gb (max = min)ā¢ 64-bit: 2 Gb (max = min)
April 2-6, 2017 in Las Vegas, NV USA #C17LV
āŖ Concurrent Mark & Sweep (CMS)āŖ Default algorithm on Java 7 and 8
āŖ Lock objects so they donāt mutate
āŖ Mark (iterate through all objects)
āŖ Sweep (remove marked objects / reclaim memory)
āŖ Compact
āŖ Garbage First (G1)āŖ Leverages Multi Cores
āŖ Reduced Pause times
āŖ Increased Throughput
āŖ GA with Java Hotspot 1.7 Update 4
āŖ Ideal for 6GB + Heap sizes
āŖ -XX:+UseG1GC
āŖ Default algorithm on Java 9
#5 Performance ā GC Algorithms
April 2-6, 2017 in Las Vegas, NV USA #C17LV
āŖ Start JVM with verbose GCāŖ -verbose:gc
āŖ -Xloggc:<filename>
āŖ -XX:+PrintGCDetails
āŖ -XX:+PrintGCDateStamps
āŖ -XX:+PrintTenuringDistribution
āŖ -XX:+PrintGCApplicationConcurrentTime
āŖ -XX:+PrintGCApplicationStoppedTime
āŖ -XX:+HeadDumpOnOutOfMemoryError
āŖ Parse log/output via GC Viewer
āŖ Determine ideal heap size and number of JVMs
https://github.com/chewiebug/GCViewer
#5 Performance ā JVM Memory Monitor
April 2-6, 2017 in Las Vegas, NV USA #C17LV
āŖ Session Timeout (less than 1 hour)
āŖ JDBj Database Connection Timeout (Less than 30 mins)
āŖ JDBj Database Pool Setup
āŖ [CONNECTION POOL]
āŖ minConnection=5 (default is 0) (for unique proxy users set to 0)
āŖ maxConnection=max users (for unique proxy users set to 5)
āŖ initialConnection=5 (default) (for unique proxy users set to 1)
āŖ poolGrowth=10 (default is 5) (for unique proxy users set to 1)
āŖ CachesāŖ JDBj to no more than 10 mins
āŖ Resultset to no more than 3 mins
#5 Performance ā Parameters
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#6 Performance ā Track ER Loops
ā¢ Event Rules are interpreted by JAS in real time
ā¢ ER loops can cause high CPU and memory consumption
ā¢ How to find out?
ā¢ Set Long Loop Warning Threshold (jas.ini) to 1000
ā¢ If a process performs more than 1000 iterations a message is logged
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#6 Performance ā Track ER Loops
ā¢ Message on JAS log
ā¢ Typical causesā¢ Code issue/bug
ā¢ End-user mistake
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#7 Database Monitoring - I/O Latency
ā¢ Measure Latency ā¢ SQL DMVs: Join sys.dm_io_virtual_file_stats and sys.master_files
ā¢ Read Latency: CEILING((io_stall_read_ms / ( 1.0 + num_of_reads)))
ā¢ Write Latency: CEILING((io_stall_write_ms / ( 1.0 + num_of_writes)))
ā¢ Oracle: AWR / Foreground Events
ā¢ āAcceptableā Latency (Ī¼ Ā± 2Ļ ā 95%)
Type Read Write
Sequential < 20ms < 10ms
Random < 25ms < 20ms
Total < 25ms < 20ms
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#8 Database Monitoring - Blocking
ā¢ Blocking vs Locking
ā¢ What causes blockingā¢ Concurrency? Poor I/O? Code bug? DB Misconfiguration?
ā¢ Identify ā¢ SQL DMVs
ā¢ dm_exec_requests + dm_os_waiting_tasks + dm_exec_sql_text
ā¢ Oracleā¢ v$lock + v$session
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#9 Database Monitoring - Long running SQL
ā¢ Monitorā¢ SQL: dm_exec_query_stats + dm_exec_sql_textā¢ Oracle: v$session_longops + v$session
ā¢ Researchā¢ Find source process
ā¢ Potential fixesā¢ Application Query Securityā¢ Data Selection Securityā¢ Create Index(s)
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#10 JDE Monitoring ā Zombie Kernels
ā¢ Use Server Manager for alerting
ā¢ Call Object kernels are the most common zombie kernel
ā¢ Clear zombie only after all the necessary data is collectedā¢ Typeā¢ PIDā¢ Number of threadsā¢ Users on each threadā¢ Call stack
ā¢ Researchā¢ ESUs?
ā¢ How to Troubleshoot Call Object Kernel Zombie Issues (Doc ID 837800.1)
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#11 JDE Monitoring ā Call Object Stats
ā¢ What are your most executed BSFNs?
ā¢ What are the most time consuming BSFNs?
ā¢ What BSFNs timeout the most?
ā¢ Howā¢ Manually export data from Server Manager JAS Instance
ā¢ Prism (TBD)
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#12 JDE Monitoring ā Batches
ā¢ Anomaliesā¢ Errorsā¢ Queuing
ā¢ Critical Jobs completion
ā¢ Volumeā¢ Most frequent vs. Longest running
ā¢ Howā¢ Custom queries/scriptsā¢ Prism
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#13 JDE Monitoring ā Response Time
ā¢ Monitor end-user performance
ā¢ How long is it taking to logon?
ā¢ How long does it take to open P4210?
ā¢ Howā¢ Oracle Real User Experience Insight
ā¢ Prism Virtual User
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#14 ā JDE CNC ā 9.2.1 Files in DB
ā¢ All file based objects (BSFN, BSSV, TBLE, etc..) in DBā¢ One-time migration to DB (first package / pathcode)ā¢ Simplify backupsā¢ Easier pathcode refreshes
ā¢ All media objects are only supported in the databaseā¢ All new attachments go to the DB automaticallyā¢ Existing attachments require UBE executionā¢ How about integrations/interfaces?
ā¢ PrintQueue optionally supported in the databaseā¢ Facilitates maintenanceā¢ Simplifies active/active deployments
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#15 ā JDE CNC ā Compare Specs vs DB
ā¢ Execute R9698711 once a quarter against Production
ā¢ Generate missing tables via OMW (R98403G if many)
ā¢ Generate all missing indexes via OMW (R9698713 if many)
ā¢ Fix any column mismatches
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#16 ā JDE CNC ā Technical Purges
ā¢ Databaseā¢ Job Master +
Dependencies
ā¢ Subsystem
ā¢ Workflow
ā¢ Workcenter
ā¢ Scheduler History
ā¢ Package History
ā¢ Security History
ā¢ Orphan Security Entries
ā¢ Orphan User Overrides
ā¢ Filesā¢ Log files
ā¢ PrintQueue
ā¢ Temporary files
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#17 ā JDE CNC ā OMW Backup Rule
ā¢ Create a Production Save Location to back up production objects before they get replaced
ā¢ Create new status code and activity rule prior PD
ā¢ Make sure users/developers cannot bypass the PD save on promotion
ā¢ Use Row exit āBackup Ruleā
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#18 ā Change Webclient Background
ā¢ To distinct between the different environments
ā¢ Since TR 9.1.x single webclient.css file change
ā¢ Use F12 in chrome to choose a color
ā¢ Find and replace the #1e4a6d in the webclient.css with the color of your choice
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#19 ā Fat Client Housekeeping
ā¢ Multiple pathcodes on the same fat client can be an issue
ā¢ Create bat file to save off and handle required files
April 2-6, 2017 in Las Vegas, NV USA #C17LV
#20 ā JDE CNC ā Packages
ā¢ Retentionā¢ No more than 2 full / pathcodeā¢ No need to keep updates for older full packagesā¢ No more than 20 updates / full packageā¢ Full package for each pathcode should be built at least every 6
months
ā¢ Be consistent with your name convention
ā¢ Do not use compression
ā¢ If you built more than one package / week you should automate it http://packman.forzaconsulting.eu/
April 2-6, 2017 in Las Vegas, NV USA #C17LV
ā¢ Packman mobile application (Android, iOS, Windows)ā¢ Review projects ready for package build
ā¢ Advance project statuses
ā¢ Start package builds
ā¢ Monitor builds
#20 ā JDE CNC ā Package Automation
http://packman.forzaconsulting.eu/
April 2-6, 2017 in Las Vegas, NV USA #C17LV
Prism
ā¢ Modulesā¢ Job Monitorā¢ Log Monitorā¢ Virtual Userā¢ Database Monitorā¢ Data Integrity Monitorā¢ Record Reservation Monitorā¢ Technical Purgesā¢ Latency Monitorā¢ BSSV Monitorā¢ Best Practicesā¢ FraudPatrol