Examining and Generating JD Edwards EnterpriseOne Indexes

sql ninja image - EnterpriseOne Indexes

Within the last week, Shannon Moir has had 2 great posts about EnterpriseOne indexes that have motivated me to evaluate our database:

Both are very good and extremely useful. I had to do a little bit of adjusting and add a where clause or two for our instance but they worked great.

This is what I my modified code looks like:

select TRIM(TPOBNM), JDEINDEX from 
(select tpobnm, trim(tpobnm) || '_' || tpinid  as jdeindex from PD900.f98712 where tpuniq <> 1
	and not exists
		(select 1 from all_indexes where owner = 'PRODDTA' and trim(tpobnm) || '_' || tpinid = index_name) and exists
			(select 1 from all_Tables where owner = 'PRODDTA' and table_name = trim(tpobnm))
union
select tpobnm, trim(tpobnm) || '_PK'  as jdeindex from PD900.f98712 where tpuniq = 1
	and not exists
		(select 1 from all_constraints where owner = 'PRODDTA' and trim(tpobnm) || '_PK' = constraint_name) and exists
			(select 1 from all_Tables where owner = 'PRODDTA' and table_name = trim(tpobnm))
)
order by 2 asc;


select * from all_indexes where status <> 'VALID';

The following steps are what I did to make sure my EnterpriseOne indexes and OMW specs were in sync:

  1. Running the SQLs above to get a list of tables that need to be examined.
  2. Verify the specs in OMW.
  3. Check the number of records in the table – You don’t want to impact user experience trying to make things better.
  4. If there weren’t too many records, I generated the indexes using OMW.

Yes, I know Shannon did things a little cleaner using all SQL, but my SQL-Ninja qualifications are not where his are.

R9698713 – EnterpriseOne Index Compare and Regeneration

R9698713 Processing Options - EnterpriseOne IndexesAfter getting halfway through my process, I remembered a handy, dandy UBE that does some of this for you: R9698713.

The R9698713 has the following Processing Options:

  1. Environment Name
  2. or Data Source Name
  3. Enter ‘0’ for Proof mode, ‘1’ to recreate ALL the indexes on the selected tables if there are ANY missing or mismatch indexes or ‘2’ to create only the missing and mismatch indexes on selected tables.
    • NOTE: your best options here are either ‘0’ or ‘2’. ‘1’ is very dangerous!
  4. Summary report or list all tables

Be sure to run it in proof mode to evaluate what it will be doing. Also, be sure to check the record counts in the tables that it plans to write the indexes over.

P95150 – EnterpriseOne Index Selection Tool

The P95150 application allows you to drop single or multiple EnterpriseOne indexes at a time. However, it only allows you to drop indexes that are not unique or primary keys.

The following doc explains how to drop and regenerate EnterpriseOne indexes using the P95150:  http://docs.oracle.com/cd/E14688_01/e1tools898pbr1/eng/psbooks/1tsa/chapter.htm?File=1tsa/htm/1tsa09.htm

Any tips or tricks when it comes to EnterpriseOne Indexes?

Submit a Tip or Trick

JD Edwards EnterpriseOne Tools Release 9.2.1.4

http://e1tips.com/wp-content/uploads/2017/07/cropped-information-technology-page.jpg

Just in case you missed it, the latest JD Edwards EnterpriseOne Tools Release is now generally available.

As with most new releases, there are some interesting features included: enhancements to EnterpriseOne Search, new Orchestration capabilities, additional flexibility for Media Object storage, and platform certifications.

However, there are a couple things that I think are especially interesting:

  • Rather than being licensed as a discrete product, the usage of Orchestrator is now included as part of JD Edwards EnterpriseOne Core Tools and Infrastructure.
    • Thats right! The way I read this is that if you are licensed for JDE Core Tools & Infrastructure, you are now licensed for Orchestrator. Good news if youve been on the fence about using this new technology or dont have a big enough project to make the licensing worth it.
  • You can now store Media Objects on the file system or in the database which enables you to upgrade to TR 9.2.1.4 without re-writing existing Medio Object integrations.

Its great to see all the improvements that are being made.

What do you think is the most compelling improvement to get you to upgrade?

Activate Callstack Dump From Server Manager

Server_Manager-Enterprise_Server_Processes

While doing some not-so-fun troubleshooting, we needed to get a callstack dump from a Call Object Kernel that was going into a zombie state. I hate those things!

Anyway, follow the steps below to get a callstack dump from Oracle JD Edwards EnterpriseOne Enterprise Server:

  1. Within the Network and Queue Settings configuration, verify Jdenet_n Signal Handler is enabled.
    Server_Manager-Network_Queue_Settings
  2. Set the Create Kernel Process Dumps to Create Kernel Dumps
    Server_Manager-Network_Queue_Settings2
  3. When a call object kernel crashes (zombie) locate it in Server Manager and open the jde.log.
  4. Scroll down to the bottom and you will see an entry related to a dump file. On a Windows Server, the entry will tell you exactly where the file is located. For Linux and Unix locate the dump file in the same directory as the parent logs files.

Now, the fun part you get to try and figure out what happened.

Do you have any tips when it comes to getting or reading dmp files?

Submit a Tip or Trick

ESU Installation Comparison Using SQL

oracle-sql-developer

If your JDE EnterpriseOne installation has been installed for more than oh, 2 weeks your pathcodes have obviously gotten out-of-sync. Ok, maybe its not that bad, but DV and PY can become much different than PD faster than a three-legged fox in a hen house. Is that fast? I dont know, but it doesnt take long. There are many reasons as to why the pathcodes get out-of-sync:

  • Testing an ESU without cleaning up after it didnt resolve the issue
  • Forgetting about an ESU that was installed in DV or PY
  • Developers being slow to do retro-fits

Now, Developers, dont get upset. I love developers. They provide job security for CNC Admins! Now come on Im just hackin on ya.

You can use SQL Developer to connect to the E1Local database.

The SQL I used to compare the ESU installations between pathcodes is below. This example tells us which ESUs are in PY910 but not in PD910. The SDSUDET=’90’ indicates that the ESU has been installed in that pathcode.

select sdpkgname as ESUNAME from f9671
where sdsudfut2='PY910' and sdsudet = '90'
minus
select sdpkgname as ESUNAME from f9671
where sdsudfut2='PD910' and sdsudet = '90'

Any other quick and dirty SQLs that you use to report on ESUs? Please leave them in the comments below.

Run Apache HTTP Server As A Windows Service

While working with a JDE EnterpriseOne add-on application, I needed to install the Apache HTTP Server as a Windows Service so that it would start automatically when rebooted. The command I used is:

httpd.exe -k install -n "MyHTTPServer_WindowsServiceName"

I got it from this Apache HTTP Server documentation:

Using Apache HTTP Server on Microsoft Windows

The relevant test is:

You can install Apache as a Windows NT service as follows from the command prompt at the Apache bin subdirectory:

httpd.exe -k install

If you need to specify the name of the service you want to install, use the following command. You have to do this if you have several different service installations of Apache on your computer. If you specify a name during the install, you have to also specify it during any other -k operation.

httpd.exe -k install -n “MyServiceName”

If you need to have specifically named configuration files for different services, you must use this:

httpd.exe -k install -n “MyServiceName” -f “c:\files\my.conf”

If you use the first command without any special parameters except -k install, the service will be called Apache2.4 and the configuration will be assumed to be conf\httpd.conf.