Kevin Kempf's Blog

May 16, 2011

A DBA’s take on MSCA (Mobile supply chain applications)

Filed under: 11i, Oracle — kkempf @ 3:23 pm

What is MSCA?

MSCA is Oracle’s take on mobile ERP.  In manufacturing, having Oracle on a PC is sometimes inconvenient.  Being able to process certain transactions where they actually happen is a huge win.  So is being able to scan a barcode at this location, instead of typing in a long item number or purchase order number.  Some common examples may be going out to the warehouse and counting inventory, transferring or issuing inventory, or even shipping and receiving.  We use the LXE MX-7 as our mobile device; it’s basically a Windows CE device connected to our network via WiFi:


Basically, MSCA is a telnet server running on the front end of 11i (possibly several servers load balanced by dispatchers), and either telnet or a little java GUI (on top of telnet) on the client side.  As far as I can tell, it’s about as secure as an open barn door and in about the same technological era as the barn itself. In other words, it’s in dire need of a facelift, and a technology upgrade, but at least it works.


Oracle® Mobile Supply Chain Applications
Implementation Guide
Release 11i
Part No. B10938-02

Oracle® Mobile Supply Chain Applications
User’s Guide
Release 11i
Part No. A86726-06

Oracle® Mobile Application Server for Industrial Applications
Installation Guide
May 2002

Oracle Mobile Applications
Graphical User Interface Client
An Oracle White Paper
February 2005

Starting/Stopping the Telnet Server

Of course, this assumes everything is configured reasonably well; in my case, autoconfig had already done all that work in $MWA_TOP as far as config files (with all the defaults).  Where I have admin_user it means someone with the canned responsibility MWA Server Manager.

  • Start
    • cd $MWA_TOP
    • ./ start
  • Stop
    • cd $MWA_TOP
    • ./ -login admin_user/password stop_force

Logging In

The quickest way to do it is via telnet.  Yep.  From a command line in Windows, type telnet host port where host is where you just started the service from $MWA_TOP and port is one of the 3 ports it cranked up a telnet listener on.  These ports are displayed when the start command completes, and are in a config file called mwa.cfg in $MWA_TOP/secure.

Here’s some screenshots of the telnet version.  I admit, my telnet client isn’t doing the application any favors, but then again, neither is the application.

Straight from 1973...

Yes the login screen CAN look worse

Actually, this may be an improvement from the responsibilities login page

Manufacturing Transactions

The admin menu

Telnet: Closing Thoughts

I don’t know who would choose to use telnet for this, or why, but it’s there, and it works.  You have to use a bunch of crazy key combinations to do things (they’re listed in the user’s guide, like ctrl-Z to exit).

The GUI client

Jumping forward 20 years, we get to the java GUI client.  Of course, Oracle only officially supports this running on Windows.  Basically, you have to pull a patch (4205328) and extract 1 file from it ( and land it in a directory on your Windows machine.  After that, you install Sun/Oracle JDK and mock up a .cmd file to make the GUI launch.   Fortunately, it also runs from Linux (Warning: You are now leaving the supported zone!) since it’s just a tiny java app sitting in front of the telnet screen and making the screen bearable.

“Installing” the GUI client

  1. Create a folder somewhere on a Windows box called msca (or whatever you want to call it), then create 2 folders in it callled lib and log.
  2. Install the most recent JDK wherever it installs itself.  The docs say install 1.1.8, but I don’t think you’re allowed to download Java from 1999 anymore
  3. Download the patch; unzip it and extract the file and put it in msca/lib
  4. Create a command file called runMSCA.cmd and stick it in the msca directory.  Edit it, and add these lines:
  5. set MWA_GUI_TOP=C:\msca
    set JAVA_TOP="c:\Program Files\Java\jdk1.6.0_25"
    %JAVA_TOP%\bin\java -classpath %JAVA_TOP%\lib\;%MWA_GUI_TOP%\lib\ oracle.apps.mwa.awt.client.StartGUI

Launching the GUI client

Double click the .cmd file and you get to the login.  These screenshots are from Ubuntu, the Windows appearance is similar.

Pick your device

Login Screen


Manufacturing Screen

Admin Screen


This is not an implementation guide.  It’s just a mid-depth technical introduction to this product.  Functionally, best practices would be to get away from canned responsibilities and pare down transactions by job role.  I do know that the few transactions we tested work fine.  I’ve left out a lot of other things.  There is a whole web-based interface which you can log into via conventional 11i to see who is using the server, whether the server is running or not, etc.  I found it less than useful (and in some of what it reported, flat out wrong) so I didn’t go into detail here, but it exists and looks something like this:

Relevant Canned Responsibilities

If you just turn on telnet and try to log in, you will have 0 responsibilities.  Try giving yourself the following:

  • MWA Administrator
  • MWA Server Manager (needed to stop the telnet server!)
  • Mobile Quality User
  • Materials Management
  • Materials & Mfg
  • Mobile Field Sales User
  • Mobile_Client_User

Shout and Spy Modes

This is one of the best parts about this product.  From the admin menu, there’s 2 cool options which I’ve tested and work great:

  • Telnet Session Monitor – lets you spy on a user (from a list of users logged in) and watch EXACTLY what they’re doing
  • Send Message – broadcast a message to a user (from a list of users logged in) or to all users – it takes over their screen until they acknowledge it.  Something like “System going down in 5 minutes” might be useful…

Using and to start/stop the telnet server

This had the potential to be a disaster, but I was pleasantly surprised to find document 731320.1 which details a patch required and a context file tweak (s_mwastatus and s_other_service_group_status to enabled) which will then automatically start the service with all the other pieces on the front end.

Set Up Concurrent Request

If you’re using manufacturing, you should run the concurrent request Generate Stock Locator Flexfield definitions for Mobile transactions in order to set up your locators.  Hat tip to the guys at Skipjack for that help; if you don’t do this, all your locators are X and nothing you enter is valid.  I’m sure this is in one of the setup documents I mentioned, probably buried in the functional details.  You can run this request as the canned responsibility Inventory.

Running the GUI from Linux

If anyone is interested in the setups required to launch the GUI from Linux, drop a comment.  It’s really not that hard to figure out if you model it on the Windows requirements and adjust as necessary.  In fact, if you have to ask, maybe you should just be running Windows…


  1. Good overview article.

    Comment by Sri — May 24, 2011 @ 8:14 am

  2. I would like to know how to set it up under linux. I try (tried) but although i know something about linux i really suck in java.

    Comment by Peter Vollebregt — February 27, 2012 @ 4:18 pm

    • I’m not sure what you’re asking me to do. I did do this in linux; at least my app server was linux. If you’re talking about connecting to it through a linux client, well, I can’t help you there, not supported.

      Comment by kkempf — February 27, 2012 @ 4:31 pm

  3. I tried to get it running as a client. I succeeded also but it seems a bit touchy. A backspace and such is not always correcly interpreted. Similar problems when using telnet under a linux client where also some keys cause problems. Telnet is not the same although I don;t know why.

    For posterity:
    – I installed a “somewhat” newer JDK (there is no 1.1.8 for linux that I can find if ever you want to use such an old beast)
    – A newer JDK has no anymore and it is not required to have the tools in the classpath
    – The client patch was the newer version (j4941477) with three zip files that all three had to be extracted.
    – All three had to be added to the classpath

    Script (you can put this in your ~/bin)

    $JAVA_TOP/bin/java -classpath $MWA_GUI_TOP/lib/$MWA_GUI_TOP/lib/$MWA_GUI_TOP/lib/ oracle.apps.mwa.awt.client.StartGUI

    Comment by Peter Vollebregt — February 27, 2012 @ 7:03 pm

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Blog at