Monday, July 30, 2012

Mobile Wireless Applications (MWA)




Today’s demand for accurate, real-time information access,and inventory speed for several industries is forcing mobile applications to Find solutions for industries such as warehousing,manufacturing,Distribution, retailing, logistics, and transportation.

MWA will use wireless devices that support Internet Standards, Web Browser, and Telnet client.Technologies involved are Java, XML, TCP/IP, and Oracle 8i.Devices as hand held Radio Frequency (RF), Personal Digital Assistants (PAD’s), and Internet Phones are examples of mobile devices.

Agenda
  • Set up overview
  • Configuration Options
  • mwa.cfg file
  • Key Mappings (device IP.ini and default_key.ini)
  • Starting/stopping Mobile Apps Server
  • Starting Server on Multiple Ports
  • Configuring RF Devices
  • Accessing a Mobile Application.


Diagram Overview

Typical three-tier Internet architecture.
In the back-end is your 11i Applications server with Oracle database.
In the middle tier is the Mobile Supply Chain Applications server. This is analogous to the Forms server and HTTP server, but is used to deploy applications to Telnet clients.
The client in this context will typically be a mobile RF device running a Telnet client. The RF device communicates with the MSCA server through an access point.

You need to do two things to start using Mobile Supply Chain Applications.
Start the Mobile Supply Chain Applications Server (after configuring it).
Configure your RF devices so that they are communicating with the server.

Configuration Options:



  • Most of the server-related configuration parameters are located in the $MWA_TOP/admin/mwa.cfg file.
The important properties in this file are:
  • Dbc File
Used to connect to database. Stores username, passwd, database port, and other info used to login.
  • Log Directory
  • Sets the location of your log directory. We default to $MWA_TOP/log, but you may want to change this to point to your regular Applications log directory.
  • Telnet Port Number
You can set the port number on which you want the Telnet server to run.
Important: You should set the port to a number greater than 1024.
Anything less will require you to be root. The configuration file defaults to port number 2323

Settings for MWA Server:




Class Paths
/local/java/jdk1.4.2_04/jre/lib/rt.jar:
/local/java/jdk1.4.2_04/lib/dt.jar
/local/java/jdk1.4.2_04/lib/tools.jar:
/lafrz/mfg_top/mfgdev/dmfdv11i/java/appsborg2.zip
/lafrz/mfg_top/mfgdev/dmfdv11i/java

MWA Server
  • MWA Configuration File
  • Port Number Conventions
  • Environment Verification
  • Dispatcher Usage
  • Configuring MWA Dispatcher

MWA Configuration File

Configuration File is used to set server related properties:

Setup mwa.cfg as follows:

Locate file in $MWA_TOP/Secure/hostname_
Copy mwa_template.cfg to mwa.cfg
Edit mwa.cfg and configure following parameters:

a. Set mwa.DbcFolder = Full directory of .dbc file ending with /
b. Set mwa.DbcFile = dbc file name
c. Set mwa.logdir = full directory of log file
d. Set mwa.TelnetPortNumber = default port#
e. Set mwa.DropConnectionTimeout = no. of minutes
f. Set mwa.StaleSessionTimeout = no. of minutes
g. Set mwa.LogLevel = error or trace


Key Mappings $MWA_TOP/admin/default_key.ini
  • You can map device keys to server-defined functions in .ini files. These are located in $MWA_TOP/admin.
  • There is a default_key.ini file in there already, which can be used as a template for the specific devices you might be using.
  • The server will use the default_key.ini file if it cannot find the appropriate .ini file for your device.
  • The syntax is action=key=Description
  • So, for example, killing (or erasing) an entire line in a text field is set to Control+K.
  • You can change this to F9, for example, if Control Keys are not easily accessible on your device.
  • In these .ini files, you can also specify the devices height and width so the server knows how to format the output.
  • The idea is to create a new.ini file for each type of device you have.
  • For example, if your company is using Intermec Trakker 2415s, create an intermec2415_key.ini file that is based off the default_key.ini file, but has height, width, and key settings for the Trakker 2415.



Kep Mappings : $MWA_TOP/admin/deviceIP.ini

  • You associate your device witha key mapping file you’ve created in the $MWA_TOP/admin/deviceIP.ini file.
  • Two ways to do this.
  • First way...
  • If your devices are DHCP, put in a line like: Intermec 2415=intermec2415_key.ini
  • Options on the left of the equal sign will appear before users log in.
  • The user must select the option corresponding to the device he/she is using.
  • Second way...(preferred way)
  • If your devices are on Static Ips, you can specify which IP addresses should be associated with which key mapping file.
  • For example, 130.35.112.*=intermec2415.ini
  • In this case, the options screen is not shown and the user doesn’t have to select anything. The server automatically knows which key mapping file to use based on the device’s IP.
Port Number Conventions

Test Instance:
Dispatcher port = 30500
Telnet Server ports = 30502,30504,30506

Development Instance:
Dispatcher port = 30700
Telnet Server ports = 30702,30704,30706

Production Instance:
Dispatcher port = 30000
Telnet Server ports = 30002,30004,30006


Environment Verification

  • Verify that correct port numbers as per convention has been used
  • Verify the environment that is set correctly by sourcing the APPS_.env file
  • Verify $MWA_TOP is set correctly
  • Verify the DbcFolder and the DbcFile in the mwa.cfg file that is set to the location and filename of our Oracle Application .dbc file
  • Verify the log directory that exists
Dispatcher Usage

Two Consecutive ports are needed per one MWA Server.
One port is for listening to RF device. The Other port
is for listening to the MWA Server Manager.Three
consecutive ports are needed for running the dispatcher.
Mobile Users connect to Dispatcher port 2300.
Dispatcher distributes mobile users among the three MWA servers.


Configuring MWA Dispatcher

Setup Dispatcher parameters in mwa.cfg:

1) Specify the port number and machine for running the dispatcher
mwa.Dispatcher = hostname:port#

2) Specify the dispatcher worker thread count. No. of connections per MWA Server.
mwa.DispatcherWorkerThreadCount = 15

3) Specify the dispatcher clients per worker. No. of MWA servers per Dispatcher.
mwa.DispatcherClientsPerWorker = 10

Before Starting the Server

Be sure the following is true:You’ve installed Oracle Applications 11i.
  1. You have logged onto your Applications machine as user oracle.
  2. The mwa.DbcFile parameter is set to the location of your Applications’ .dbc file. This property is set in your $MWA_TOP/admin/mwa.cfg file.The .dbc file is used for storing all the information the server needs to log into your database (e.g., name of the server, database port, etc.)
MWA Server JVM Memory Allocation

Set MWA Server JVM Memory Size
Unix - $MWA_TOP/bin/mwactl.sh
NT - $MWA_TOP/bin/mwactl.cmd

Parameter VMCONFIG="-mx256m -ms128m"

No. of users/Server Memory allocation
5 to 10 -mx128m -ms64m
10 to 15 -mx256m -ms128m

Initialization Parameter File : $MWA_TOP/secure/default_key.ini

Devices Specific Info
DATASTREAMINDICATOR=28
DEFAULT_WIDTH=20
DEFAULT_HEIGHT=16
DEFAULT_TERM_TYPE=VT100
CHARACTER_SET=UTF8
PROMPT_RATIO=1:1
MWA Navigation Keys
MWA_HELP=F1
MWA_MENU=F2
MWA_BACK=F3
MWA_FORWARD=F4
MWA Function Keys
MWA_CLEAR_FIELD=CONTROLK
MWA_LOVSUBMIT=CONTROLL
MWA_MAIN_MENU=CONTROLN
MWA_MESSAGE_DETAIL=CONTROLB
MWA_FIELD_DETAIL=CONTROLA
MWA_BUTTON_ACCLRTOR=ESC
MWA_PAGE_UP=CONTROLD
MWA_PAGE_DOWN=CONTROLC
MWA_ABOUT_PAGE=CONTROLX
MWA_FLEX_POPUP=CONTROLF
MWA_FLUSH_INPUT=CONTROLE
MWA_DROP_CONNECTION=CONTROLZ
INV Function Keys
INV_GENERATE=CONTROLG
WMS Function Keys
WMS_SKIP_TASK=CONTROLS
WMS_INVOKE_DEVICE=CONTROLP

Initialization Parameter File : $MWA_TOP/secure/deviceIP.ini

[device]
DEFAULT=default_key.ini
SYMBOL=gui_key.ini
INTERMEC=intermec.ini

// Wildcard at the end of IP address is supported.
[map]
127.0.0.1=default_key.ini

Startup and shutdown Script

start_mwa.sh
export MWA_TOP=//applmgr/1159/mwa/11.5.0
export PATH=$PATH:$MWA_TOP/bin
export DISPLAY=:1.0
nohup //applmgr/1159/mwa/11.5.0/bin/mwactl.sh start 30002 &
nohup //applmgr/1159/mwa/11.5.0/bin/mwactl.sh start 30004 &
nohup //applmgr/1159/mwa/11.5.0/bin/mwactl.sh start 30006 &
nohup //applmgr/1159/mwa/11.5.0/bin/mwactl.sh start_dispatcher &

stop_mwa.sh

export PATH = $PATH:/sid/applmgr/1159/mwa/11.5.0/bin:/sid/applmgr/common/util/jre/1.1.8/bin
nohup /sid/applmgr/1159/mwa/11.5.0/bin/mwactl.sh -login mobileadm/mobileadm stop_force 30002 &
nohup /sid/applmgr/1159/mwa/11.5.0/bin/mwactl.sh -login mobileadm/mobileadm stop_force 30004 &
nohup /sid/applmgr/1159/mwa/11.5.0/bin/mwactl.sh -login mobileadm/mobileadm stop_force 30006 &
nohup /sid/applmgr/1159/mwa/11.5.0/bin/mwactl.sh stop_dispatcher &

Startup/Shutdown of MWA Servers and Dispatcher

To start the MWA Telnet Server:
1.Source the APPS_.ENV
2.cd $MWA_TOP/bin
3.mwactl.sh start [port number]
4. mwactl.sh start_dispatcher

1.To Shutdown the Telnet Server:
2.cd $MWA_TOP/bin
3.mwactl.sh -login xxx/yyy stop port#
where xxx is the application user id with system administrator responsibility and yyy is the application user password.
4.mwactl.sh stop_dispatcher

Follow the steps outlined to start the MSCA server.
  • Note that you can specify a port number when starting up the server. Specifying a port here will override the port specified in your mwa.cfg file.
  • Immediately after starting the server, check to see if it worked. Telnet to the Server with a PC’s Telnet client. telnet
  • There should also be a new java process running on your machine.
  • For Background running:
  • nohup mwactl.sh start 2323 &
  • Nohup = the process will continue to run even after user has terminated unix session
  • & = will launch the process in background mode

Problems Starting the Server:
  • Make Sure the port isn't already in use
  • Make Sure the Environment is set Correctly by sourcing the APPLSYS.env File
  • Make Sure the $MWA_TOP is set correctly
  • Make Sure the mwa.Dbc File Parameter in your mwa.cfg file is set to the location of
  • your oracle application dbc file.
  • Make Sure your Database is up and the users specified in the .dbc file valid.

Here are some things to watch out for if the server didn’t start up successfully.

Log file will look like ..
The APPLSYS.env may have been changed to user’s environment file. (Example: visus02.env)

Starting the server on multiple ports
For load balancing reasons, you may want to start up multiple servers.
Remember to start each server on a different port.
Also, remember that the Server uses port n+1 when communicating with Server Manager.
So, if you start on port 2323, then port 2324 is also taken, and port 2324 will not be able to be used.
A dispatcher can be used to route requests to one of the servers.
In the mwa.cfg file, modify the parameter "mwa.Dispatcher=hostname:port".
Set the hostname to the machine on which you want the dispatcher to reside. Set the port here as well.
mwactl.sh start_dispatcher to start
mwactl.sh stop_dispatcher to stop

Notes:
If you use the Dispatcher, we do not support the ability to reconnect from a dropped session and still get back to the same screen.
You must start the dispatcher from the same MWA_TOP you use to start the Telnet server.


Concurrent Program defn.

Sometimes, Customers specifically ask for defining
concurrent programs for startup/shudown of MWA
servers from front end in Oracle APPS 11i.

Steps for defining Concurrent program:
  • Copy start_mwa.sh and stop_mwa.sh to $XBOL_TOP/bin as start_mwa and stop_mwa
  • Login from front end, and define Concurrent program executables as HOST type
  • Define the concurrent program named as startup_mwa and stop_mwa
  • Test the same, if you have CRT from the customer for bouncing MWA
  • Update the Customer with successful results
Create Executables from Frontend for both Start MWA and Stop MWA.
Concurrent Program Executable : Concurrent -> Executable-> Define

Executable: MWA_START/MWA_STOP
Shortname:MWA_START/MWA_STOP
Application:Business Online
Description:TO Start MWA/To Stop MWA
Execution Method: Host
Execution file name: mwa_start/mwa_stop

Concurrent Program:

Program Name: MWA_STOP/MWA_START
Shortname: MWA_STOP/MWA_START
Application Name: Business Online

Executable

Name: MWA_STOP/MWA_START
Method: Host

Accessing a Mobile Application:


To get to a mobile application
1. Login
2. Select Responsibility.
3. Select Menu Item



Common Issues
Dispatcher and MWA ports getting reset after refresh or running autoconfig.
In Order to avoid autoconfig resetting the ports, we need to have standard ports on context file.
Parameters listed above.
Some times process doesn’t get cleared after the stop command issued. Wait for some time and always, please check netstat -i |grep . If you see port is still listening. Use lsof -i |grep
#>. Identify the process and kill them. When all ports are cleared start the services.
Post start service can done from desktop dos prompt or start -> run with
telnet . Repeate this for all ports including dispatcher to make sure you get login prompt.

Q. The Server doesn’t start successfully?
Q. The Server doesn’t allow me to connect if X users have already
connected?
Q. There is a long response time between the server and the client?
Q. The Server drops my connection to the server if I have been idle for more than a couple of minutes?
Q. Setting up of a cronjob for automatic bounce of MWA Servers


MWA Configuration Help

  • For MWA Configuration details, please see following metalink notes
  • Mobile Applications Technology Stack: 163931.1
  • MWA Dispatcher port number usage: 170939.1
  • MWA Dispatcher Usage and Example: 198543.1
  • Important MWA Dispatcher Fix:
  • MWA Dispatcher linking MWADIS executable Bug 2284935

No comments: