EnterpriseOne

The EnterpriseOne category will include all posts and pages pertaining to EnterpriseOne.

Securing Oracle JD Edwards EnterpriseOne with Windows Firewall

EnterpriseOne Windows Firewall

On one of the Oracle JD Edwards EnterpriseOne installations that I manage, we have a few Windows 2003 Servers. Yeah, I know, it’s no longer supported but the Tools Release is 8.98.4.7 and there are a couple third-party applications that are not able to be upgraded. It’s crazy how messy, real-life situations cannot be duplicated in the squeaky-clean confines of the Oracle lab.

Since Windows 2003 Server is no longer supported by Microsoft, our IT Security Team has tried locking down these servers using several different methods. One of them has been to try and implement a software firewall on the server itself. Unfortunately, any third-party solution that we tried had such a negative impact on the performance of EnterpriseOne that we had to remove it. So, they asked that we turn on the Windows Firewall. While not as robust as they would have liked, it would provide another layer of security.

The good thing about the Windows Firewall, other than how simple it is, is that it shuts down all communication and only allows what you specify. That means, for EnterpriseOne to function, you need to make sure that all the applications and ports are allowed through the firewall. There were a few different documents that I used to come up with the correct recipe for successfully securing Oracle JD Edwards EnterpriseOne with Windows Firewall:

The easiest way to access the Windows Firewall settings is to go to [Start] -> Run -> firewall.cpl. I created a shortcut to firewall.cpl on the desktop to make it easier.

The following is a breakdown of what I came up with but since everyone’s configuration is different (CNC = Configurable Network Computing) your mileage may vary.

  • Made the following change to the jde.ini of the affected Windows Server:
    enablePredefinedPorts=1
  • Specified the following applications
    • E:\JDE_HOME\jdk\jre\bin\java.exe – Used by the JDE Server Manager
    • E:\JDEdwards\E900\DDP\system\bin32\jdenet_k.exe – Part of JDE Services
    • E:\JDEdwards\E900\DDP\system\bin32\jdenet_n.exe – Part of JDE Services
    • E:\JDE_HOME\bin\scfagent_64.exe – Used by the JDE Server Manager
    • E:\JDEdwards\E900\DDP\system\bin32\jdesnet.exe – Part of JDE Services
  • Specified the following ports
    • Oracle_Database_Port – Oracle DB communication port 1521
    • Server_Manager_Port – Oracle JDE Server Manager port 14501
    • Server_Manager_Port – Oracle JDE Server Manager port 14502
    • Server_Manager_Port – Oracle JDE Server Manager port 14503
  • Specified the following ports that correspond to the enablePredfinedPorts setting above:
    • Oracle_E1_Port_6015 – 6015
    • Oracle_E1_Port_6016 – 6016
    • Oracle_E1_Port_6017 – 6017
    • Oracle_E1_Port_6018 – 6018
  • Allowed PING for monitoring server availability by using the [Advanced] tab
    Windows Firewall Ping

There were a few more settings that I added to allow for our third-party applications but those are not related to EnterpriseOne.

Do you have any other tips or tricks to get Oracle JD Edwards EnterpriseOne to work with Windows Firewall?

Submit a Tip or Trick

Oracle JD Edwards EnterpriseOne Multi-Foundation

EnterpriseOne Multi-Foundation

Oracle JD Edwards EnterpriseOne Multi-Foundation configuration is used to run at least two separate tools releases on the same installation. This is usually done to facilitate an environment or pathcode that can be updated to a new Tools Release without effecting your production environment.

It’s also a great way to remove the dependency of your production environment and non-production environments being on the same set of EnterpriseOne services. That means you can bounce non-production services without effecting production. This is great for troubleshooting as well as applying OS updates.

The easiest way to setup multi-foundation is to follow the steps outlined in the following Oracle doc: Working With Multiple Tools Release Foundations

Do you have an tips or tricks when it comes to working with EnterpriseOne Multi-Foundation?

Submit a Tip or Trick

EnterpriseOne Package Build Completed With Errors

Don’t ya just hate that message when on the PDF at the completion of an EnterpriseOne package build… Build Completed With Errors?

Well, I came across this the other day and I just couldn’t get the EnterpriseOne package build to rebuild successfully. There were no usual suspects, like coding errors or running out of disk space. The only error I had was:

Attempting to Link.
Command: 'chdir=E:\JDEdwards\E900\DDP\packages\PDF6000\obj\CLOC'
Entering DoTheLink.
Executing: 'dir /b *.obj  >> link_cmd'.
Executing: 'link @link_cmd >> CLOC.log'.
Entering RunMtExe.
Executing: 'mt.exe -manifest E:\JDEdwards\E900\DDP\packages\PDF6000\bin32\CLOC.dll.manifest -outputresource:E:\JDEdwards\E900\DDP\packages\PDF6000\bin32\CLOC.dll;#2'.
builddll.c:4719 BUILDDLL0191 ERROR: Failed to run mt.exe successfully
Exiting RunMtExe.
builddll.c:2394 BUILDDLL0082 ERROR: Exiting DoTheLink with failure.
Finished Linking. Copying .c, .h, .hxx, and bin32 to Package Location.

So, I started messing around with the mt.exe command that it was trying to run and came up with this:

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin>mt.exe -manifest E:\JDEdwards\
E900\DDP\packages\PDF6000\bin32\CLOC.dll.manifest -outputresource:E:\JDEdwards\E
900\DDP\packages\PDF6000\bin32\CLOC.dll

Then, I resubmitted the build using Package Build History and it completed successfully.

Do you have any tricks for getting by odd package build issues?

Submit a Tip or Trick

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?