Multiple JDENET instances on same server & port with IP aliases

Mark Alexander

Member
Hello list members

Background information:
Product: *EnterpriseOne* - E811 SP1 Update1
Service Pack/Tools Release: 8.96.D1
Platform and OS level: Solaris 10 (global zone)
Database and version/level: Oracle 10.2.0.1
Web Server platform and OS level: Win2003 SP1

Aim:
Run multiple instances of JDENET, so interactive and batch processing is split with two instances each, therefore a total of four instances, each running under different userids and network interfaces (aliases).

Issue:
When starting up OneWorld (RunOneWorld.sh) (JDENET), the JDENET process seems to listen (bind) on all network (IP) aliases on the server.

eg.
netstat -an | grep 6013 | grep LIST
*.6013 *.* 0 0 49152 0 LISTEN

rather than a possible (eg. oracle sqlnet listener):
10.0.0.1.6013 *.* 0 0 49152 0 LISTEN

When starting up a second OneWorld (JDENET) process, JDENET fails with which looks like a bind error:

8715/1 MAIN_THREAD Thu Jan 11 14:48:40.764255 netconn.c1399 125-bind returned Address already in use

Doing searching on the web and this list, I found the parameter "netHostName" or "NetHostName" from:
J.D. Edwards OneWorld: The Complete Reference: JDE.INI File Settings for Clients and Servers.

This parameter has the description:
Used to specify which IP address use if there are multiple network cards used on the server.

This seems to match my issue - by allowing me to specify which interface (alias) the JDENET process should run (listen) on.

Applying this in the JDE.INI does not seem to present the JDENET process from listening (binding) on all interfaces (aliases).

Thanks for considering this issue.
Regards
Mark
 
First of all, I would recommend reevaluating why you are doing this. Are you trying to put some sort of security around different environments ? Perhaps the use of multiple application servers would be able to perform this in a far better way ? If not by using Solaris application servers - perhaps intel (Linux or Windows) based application servers ?

Secondly, what you are trying to attempt is certainly possible - you should do a search on this site and my website for information relating to "Multifoundation" - there are documents that show how to have multiple installations of Oneworld Application Services running on the same machine - but using different PORT #'s.

However, my worry is that 4 instances of OneWorld is extremely memory intensive - and that 4 instances seem to match the 4 different environment/Pathcode types (JD, DV, PY, PD) - which would be a very bad methodology for implementing multifoundation.
 
I used this feature once in XE on an AS/400 that was used to host multiple OneWorld instances for completely different companies without using partitions. Each instance ran in its own subsystem and listened on a separate NIC.

At that time the setting did work.

e.g.:

[JDENET]
NetHostName=10.100.1.20

If I recall it also required that there be a "hosts" file entry on the machine with the ip address but I am not positive.

I have not seen it mentioned in recent documentation. Perhaps multi-foundation has been seen as serving the same purpose. It is probably easier to just run things on different ports unless there is an absolute need to isolate each instance to a single NIC.

I did a quick search on the CustomerConnection and found almost no mention of it other than the Unix Troubleshooting Appendix and the SAR from 1997 that originally requested the setting be added. I suggest you log a call with Oracle Support and have them get a definitive answer out of Development as to whether or not this setting is still used.
 
I amend my previous post. I just searched my document archive and I found this setting mentioned in the 8.96 Tools Server and Workstation Administration Guide.

It mentions the setting as a way to troubleshoot the error message "Communication Failure with <server name>"

"The server might have two network cards, which can confuse JDENET when the net communications are initialized between the client and server. One machine tries to connect using one network card, and the other machine connects using the other network card.

The hosts file on the server should list two different IP addresses for the server: one for each network card. The solution for the error involves setting the NetHostName field in the [JDENET] section of the JDE.INI to one of the names for the server given in the hosts file. JDENET then uses the IP address associated with the given network
card."
 
Thanks for the relpy.

If the archicture seems "bad" - I'm sorry. I'm the unix - "please make it work person". The reason for the mulitple instances on the same server, is to provide some appliation resiliancy. This is being installed onto a large sun server - so wish to make best use of the hardware.

Thanks for the information "Multifoundation" - I will research this ... I did understand (maybe wrongly) this was like multiple organisation, rather than multiple instances of the same oraganistion.

Regards
Mark
 
Thanks for the reply.

I have tested the "NetHostName" setting again.. with the same result.. so maybe this is not include with the Solaris Port. I will seek some more information from Oracle on this parameter.

Thanks
 
I don't think multi-foundation is what you're looking for based on your description. The multi-foundation setup is meant to allow you to test a new version of tools on the same box without taking down the first instance or exposing it to untested code. It can be used for other purposes, but you'll find that it would only help with separate instances of JDE - in other words you'd be forced into binding to different JDE listening ports for each instance on the client *and* the server instance.

For what you're trying to accomplish, it sounds more like you are opposed to a secondary instance of the OS on the box - you're going to get close to the same level of use of hardware even if you split the app up into another container. Yes, this means you have to manage more OS instances, but the JDE architecture wasn't designed to do what you're trying to accomplish - they *probably* won't add this functionality anytime soon. Perhaps you'll get lucky and find a way to "hack" this functionality together. If so, let me know.

All this being said, make sure you're running the individual JDE instances with separate userid's, with separate primary groups, and different and varied IPC port start ranges. Also make sure you use the enablePredefinedPorts option and also set the Cluster value to a separate hostname per listening instance. Maybe you'll get it to work - good luck.
 
Thanks for the reply.

"it sounds more like you are opposed to a secondary instance of the OS on the box " - sorry - solaris zones is not supported for JDE.

"Solaris Containers do not provide a complete virtual server unlike other vendor's server virtualization solutions such as IBM's POWER5 virtualization. Many OS features/functionality is limited when running an application in a non-global zone. Please see Sun's website for a list of limitations:
http://developers.sun.com/solaris/articles/application_in_zone.html"

If someones has JDE running under soliars zones - I would be really interested to here from them !!!


I've tested all the combinations using NetHostName,enablePresdefinedPorts, and cluster values to no luck. Looking at the jdenet.h - the connnection does not seem to contain a parameter for the host ip address.

Thanks
 
That's too bad - perhaps sometime in the not too distant future Sun will have a better virtualization solution than simply providing a secure environment one better than an escapable 'chroot' environment. After reading your post, I researched and found they are experimenting with a Hypervisor solution for the T1 processor.

Too bad JDE doesn't work on the Solaris 10 x86 - I'd try it out if I could. I used to own an Ultra 5 but got rid of it when I moved into an all HP environment.
 
of course you could use Solaris on VMWare machines....VMWare supports Slowaris 10 x86 !

Its a lot cheaper....though I'm not sure if installing Oneworld on a VMWare Solaris machine works. It'd be interesting to hear if anyone does it however !
 
Solaris 10 x86 can be setup to run many Linux binaries, but I'm not certain if it is officially supported yet, and if it is, doubtful Oracle would support it with or without approval from Sun.

Still, you bring up an interesting proposition - running JDE as a Linux app by utilizing the "Solaris Containers for Linux Applications" ABI. It probably will not work - but that is something to try today as it is an ICE DAY!

VMWare does not support Solaris SPARC because their virtual machine runs only on x86 hardware. Also, without application support (such as JDE *official* support on Solaris x86), there is limited value to the solution for a CNC outside consolidating 'core' servers which they *may* be responsible for (DNS, LDAP, DHCP, CIFS, Print, Email, etc.) to a multi-proc, multi-core x86 server.

VMWare offers full support of Solaris 10 x86 only for the following versions:

ESX Server 3.0.1
Solaris 10 1/06 (Update 1) and Solaris 10 6/06 (Update 2) supported on ESX Server 3.0.1
Virtual SMP supported for any supported Solaris guest on ESX Server 3.0.1.

Installing Solaris 10 x86 on any other supported release of VMWare is done so 'experimentally':

VMware Workstation 4.5.2, 4.5.3, 5.0, 5.5, 5.5.1, 5.5.2, 5.5.3
Experimental support for Solaris 10 1/06 (Update 1) on Workstation 5.5.2, 5.5.3
Experimental support for Solaris 10 6/06 (Update 2) on Workstation 5.5.2, 5.5.3
Experimental support for 2-way Virtual SMP on Workstation 5.5, 5.5.1, 5.5.2, 5.5.3
VMware Server 1.0, 1.0.1
Experimental support for Solaris 10 1/06 (Update 1) on VMware Server 1.0, 1.0.1
Experimental support for Solaris 10 6/06 (Update 2) on VMware Server 1.0, 1.0.1
Experimental support for 2-way Virtual SMP on VMware Server 1.0, 1.0.1
VMware ACE 1.0, 1.0.1, 1.0.2
VMware GSX Server 3.1, 3.2, 3.2.1
 
Back
Top