JDEBSFN server can be installed on app server or any other server with a thin client installed. You can choose a server other than app server for load sharing purposes.
- Log in to B2BPortal, go to Download and Licenses.
- Download JDEBSFN.zip file from “EASYProcess Installation Assist Files”.
- Unzip this to Application root (<EPRoot>\<Env>\Applications\<AppName>) on application server. Make sure JDEBSFN is unzipped directly into the application root and you have ApplicationRoot\JDEBSFN as folder structure.
- Create a folder ApplicationRoot\JDEBSFN_JDEJarFiles. Copy JAR files from Customer JDE Install to this folder. They are generally located in System/Classes folder inside JDE Install on JDE Enterprise Server. JDE CNC is the right resource to contact for this. This is very important. Without having right jar files, you may not be compatible with JDE enterprise server. You can also see list of jar files below.
- From JDEBSFN\Sqljdbc folder, copy sqljdbc4.jar if you are using JVM 1.6 or higher or copy sqljdbc.jar if you are using JVM 1.5 or lower to JDEBSFN_JDEJarFiles. Make sure either sqljdbc or sqljdbc4.jar exists in this folder and not both, otherwise you will get run time error.
- From JDEBSFN\JSON folder, copy json-smart-1.2.jar to JDEBSFN_JDEJarFiles folder.
- Make sure JDE.INI setting are changed to support XML Interoperability. See JDE.INI settings section below.
- Go to EASYProcess, open application, Configuration, JDEBSFN, Default.
- Provide JDE Settings:
- Enterprise server
- User ID
- BSFN Mode = ‘JAVASERVER’ - This is recommended as these are single threaded servers. You can setup multiple servers as explained below. ‘JAVASOCKET’ = This is no longer supported.
JDEBSFN server needs to connect to SQL server using jdbc. SQL server details are in epinstallation file/application node. If you are using default or named instance (SQLExpress etc) on default port 1433, jdbc will connect to SQL server without any additional configuration. If you are running on a different port and named instances such as SQL server express are always setup to run on dynamic port, then you have two choices:
- Make sure ‘SQL server browser’ service is running.
- Or provide port number for the SQL server instance in the Argument as below in <Optional:SQLServerPortNumber>. This is not recommended because SQL server can change port number for the name instance when sql server service restarts.
Kill Old Java Jobs
There could be java jobs running from old JDE BSFN setup and you should kill them before proceeding further. To do that,
- Go to windows tasks. Find all ‘java.exe’ or ‘java32.exe’.
- Right click on it and go to ‘Open file location.’
- If location = &ApplicationRoot/JDEBSFN then kill that job. Make sure you are only killing java jobs for your application.
- This is important. Make sure you test JDEBSFN server using the command line before you proceed with task scheduler setup. Since task scheduler command line is not visible, it is not easy to troubleshoot using task scheduler.
- Open command prompt and go to directory : ApplicationRoot/JDEBSFN.
- Type command: JDEBSFNServer_Tester_Invoker <EnvName> <AppName> <Optional:SQLServerPortNumber>. Example: JDEBSFNServer_Tester_Invoker Development TestApp.
- Tester will run a ‘NextNumberBSFN’ and you should get error back as ‘Next Number Failure’ from JDE on command line. That response means you are good to go.
- If you do not get response from JDE, look for exception in JDBSFN/Logfiles folder. First look for jderoot_xxxx.log files and then jas_xxxx.log files.
- Go to Windows task scheduler and set up a new task. Name the task ‘&EnvName-&AppName-JDEBSFN-Server1’
- Program = BSFNServerStartupFile
- Argument = &EnvironmentName &ApplicatinName Server1 <Optional:SQLServerPortNumber>. Example: “EC_DV EASYCommerce Server1”
- Start in(Program Path) = &ApplicationRoot/JDEBSFN folder.
- Setup Trigger : Daily Repeat with 1 Minute for 24 hours. This will allow task manager to restart this job if it goes down for any reason.
- To set up additional JDEBSFN server jobs, create another task and change ‘Server1’ to ‘Server2/3/4’ and so.
- If server job is running, it will show as status = ‘Running’ in windows task scheduler.
When JDEBSFN server starts, it will run a BSFN tester call and get a session ID. That session ID will be used for every call it makes to JDE no matter what web request is calling it. This session ID will be automatically warmed every minute. If you want to change warmup interval, change it in Configuration/JDEBSFN/JDESessionTimeout property.
JDE INI Settings
Please verify the following settings in JDE.INI:
krnlName=CALL OBJECT KERNEL
Note: If the site has Vertex installed (for sales and use tax calculations), then another stanza (below) may need to be added. This is only necessary if Vertex is used and is not necessary if JDE is used for these calculations.
krnlName=XML TRANSACTION KERNEL
To understand XML CallObject:
To understand JDE.INI settings changes:
Connector Mode : JavaDynamic
JDEBSFN can be run in two connector mode. XmlInterop or JavaDynamic. By default, java bsfn server runs in XmlInterop mode.
Specify ‘ConnectorType’ = JavaDynamic to run it in JavaDynamic mode in CallBSFN service.
Why JavaDynamic: Some BSFN parameters can only be passed a proper number object with decimal precision and currency applied. XMLInterop is string based connector and does not provide a way to specify data type. With dynamic connector, you can specify a parameter as BigDecimal and then provide decimal precision and currency as below:
<param name="mnAmountTaxable" dataType="BigDecimal" currency="USD" precision="2">2475897</param>
<param name="mnAmtTax2" dataType="BigDecimal" currency="USD" precision="2">0</param>
Other than datatype, entire XML input for BSFN call remains the same for JavaDynamic as in XmlInterop. You can still use id and idref to pass values between BSFN.
JavaDynamic connector requires additional setup as below:
Always use environment name starting with J* for Java dynamic connector, such as JDV920 and not DV920. Environment starting with J* are similar to the one without J except they are design to run BSFN on the enterprise server which is what we want.
You will need to put this file in JDEBSFN folder. You should ask for this file from customer JDE Fat client install which is normally in a place similar to C:\E910\DV910\ini\sbf. This way you will get this file prefilled. Most of the fields in this file are self explanatory and requires enterprise server and port.
Make sure WebDevelopment is setup to ‘False’ as below no matter what it has on JDE Fat client.
You will need to put this file in JDEBSFN folder. You should ask for this file from customer JDE Fat client install which is normally in a place similar to C:\E910\DV910\ini\sbf. This way you will get this file pre-filled.
These two sections should be properly filled in :
- [JDBj-BOOTSTRAP DATA SOURCE]
- user=User Id
- environment=JDE environment that you are connecting to.
- Most of the value in this sections are explained in the comment above this section in the file itself.
- physicalDatabase=This should be the system database of JDE that holds all specs. Example: SY910
- It is very important to remove every entry from this section. Otherwise it will try to use local data source to get spec and fail.
Again, it is highly recommended that you seek both of these ini from customer from the location mentioned above. These files are included in JDEBSFN folder with default values set for K-Rise JDE.
JDBJ.ini will also specify JDE Database type such as IBM, Oracle or SQL server. Based on that, a corresponding .jar file must be present in jar files folder.
- For IBM, JT400.jar should be taken from IBM Client access installation folder.
- For SQL server, sqljdbc4.jar should already be there.
Make sure you delete Xalan.jar from JDEBSFN folder.
Look for exceptions in JDBSFN/Logfiles folder. First look for jderoot_xxxx.log files and then jas_xxxx.log files.
If you receive a “Cannot inherit from final class” exception, then try to find and remove the file “xalan.jar” from the JDEBSFN_JDEJarFiles. If the exception is not resolved, then try to remove files from JDEBSFN_JDEJarFiles one by one until no Java exception is thrown.
JDE Connector Jar files
Copy these jar files from JDE Enterprise server. Do not copy more than these.
SQL JDBC Jar files
Database Vendor JDBC Jar files