Key Results
- Zero database rewrite: the ColdFusion front end moved to .NET (ASPX and C#) on the same Oracle database
- Tanks to toothbrushes: mainframe equipment records loaded into Oracle by NSN and TAMCN
- Classified and secure: SUL ran on SIPRNet, the Department of Defense Secret Internet Protocol Router Network
- Orders by radio: an encrypted radio link with voice to text let field units order ammunition, equipment and parts by talking
- Mission uptime: a web server I ran and maintained in support of the war effort
Summary
Long before I led WordPress projects for nonprofits, schools and global brands, I was a Sergeant in the United States Marine Corps with the 4067 Computer Programmer MOS. I was stationed at Camp Lejeune, North Carolina. The most important application I worked on there was Small Unit Logistics, known as SUL, a web application used to track Marines, supplies, ammunition, vehicles and equipment. It ran on SIPRNet, the Department of Defense Secret Internet Protocol Router Network. That is the classified network for sharing secret level information that is kept separate from the regular internet.
Civilian contractors worked on SUL as well, but I was the main Marine Corps developer and support specialist for the whole web application. I led its future planning and its platform migration from ColdFusion to the .NET framework. I rebuilt the front end in ASPX and C# while keeping the Oracle database exactly where it was. I also worked with a gunnery sergeant to move the Marine Corps equipment data off a mainframe and into Oracle. I was also instrumental in integrating a logistics ordering system that let forward operating units place orders over encrypted radio. Voice to text on the server turned a spoken request into an order. When the Marine Corps went to war in Iraq, I kept SUL updated and running.
This is the story of that migration, and why it still shapes every platform migration I lead today.
About the Mission
What Small Unit Logistics Was
SUL started in 1999 as an advanced concept technology demonstration. The National Academies described its focus in their 2000 assessment of the Marine Corps science and technology program: "supporting logistics command and control, plan execution, and logistics visibility for the small unit at the tactical level." The idea was to link a number of legacy databases so that equipment and supplies could be located in real time and shared as a common tactical picture.
The Department of Defense technology plan for the program called for a system that would be "scalable, accessible via a Web relational database environment" and able to "interface/fuse data and information from defense and service legacy logistics systems." By fiscal year 2003, the Navy budget recorded a "Demonstration of SUL ACTD in Exercise Desert Knight" and the "Transition management of several systems to SUL to Marine Corps Systems Command." Researchers even connected spoken radio interfaces to "the Small Unit Logistics (SUL) database, which maintains current information about supply requisitions."
In other words, SUL was moving from a demonstration to a real tool Marines depended on. That is the moment I came in.
About the 2nd Force Service Support Group
The 2nd Force Service Support Group was the logistics backbone of II Marine Expeditionary Force, headquartered at Camp Lejeune, North Carolina. Its lineage goes back to 1944. According to the official 2nd Marine Logistics Group history the unit relocated to Camp Lejeune in September 1945 and was "Redesignated 30 June 1978 as 2d Force Service Support Group." In Operation Iraqi Freedom, the 2d FSSG formed the Marine Logistics Command. The Marine Corps History Division account of combat service support in OIF explains that "2d FSSG or MLC was the wholesale level logistics organization," responsible for brokering sustainment such as ammunition, fuel and water and pushing it out across the battlefield. In 2005 the Marine Corps renamed every FSSG a Marine Logistics Group. The command I was stationed with, and whose in garrison website I helped build and maintain, became today's 2nd Marine Logistics Group.
SUL in the war: wholesale logistics in Operation Iraqi Freedom
When the Marine Corps went to war in March 2003, the stakes for a logistics system became very real. Iraq answered the opening air strikes on March 20 with missiles fired at the staging camps. CNN reported that two landed near Camp Commando, the Marine headquarters, sending Marines into bunkers and gas masks. I tell that part of the story in Gas, Gas, Gas.
Our job in the 2nd FSSG, operating as the Marine Logistics Command, was sustainment at scale. The same History Division account notes that the MLC was "the wholesale level logistics organization," while 1st FSSG handled retail level support to the units moving north. Doctrine explains why that took a system like SUL. The Marine Corps reference publication on combat service support describes an FSSG as "an H&S battalion for command and control and seven permanently organized battalions" organized along functional lines such as supply, maintenance and transportation. Each battalion breaks down into companies and platoons. That is exactly the chain an order had to travel: from a sergeant in the field, to the right company, to the right platoon, to the right truck in Motor Transport. Our camp in the desert was Camp Fox. According to an oral history from a 2nd FSSG staff officer, it was the base where the Marine Logistics Command was based during the major combat phase of OIF.
The Challenge
SUL had three problems that will sound familiar to anyone who has ever run a legacy platform.
A front end that had to grow
SUL was originally built in ColdFusion on top of an Oracle database. It worked, but the Marine Corps needed an application that could be extended, supported and planned for over years, not months. The front end needed to move to a platform with a longer runway.
Critical data trapped on a mainframe
The equipment records SUL needed to track lived on a mainframe. Every item the Marine Corps owns has a nomenclature number, either a National Stock Number (NSN) or a Table of Authorized Materiel Control Number (TAMCN). Without that data in Oracle, SUL could not show what equipment existed or where it was.
No room for downtime
This was not a marketing site. Units relied on SUL, and the Marine Corps was preparing for war. Whatever we changed had to keep the data intact and the application available.
Our Solution: A Seven Step Migration
Step 1: Future planning
I led the future planning for SUL. The key decision was to separate the layers: the Oracle database was the asset worth protecting, and the ColdFusion front end was the layer that needed to change. Keeping the same database meant the data model, every record and every integration that touched it could stay stable while the user facing application was rebuilt.
Step 2: ColdFusion to .NET migration
I rebuilt the SUL front end on the .NET framework using ASPX pages and C#. Because the Oracle schema stayed the same, the new application read and wrote exactly the same records the old one did. Users kept their data, and the Marine Corps gained a codebase that fit its longer term direction. It is the same pattern behind every successful platform migration: change the layer that needs to change, and protect the data that matters.
Step 3: Mainframe to Oracle equipment import
I partnered with a gunnery sergeant at Camp Lejeune who was the mainframe systems expert. He extracted the equipment data from the mainframe, and I wrote the import scripts that loaded it into the Oracle database. Every item, from tanks to toothbrushes, came across keyed by its NSN or TAMCN, so SUL could finally track the full range of Marine Corps equipment on the web.
Step 4: An ordering system for forward units, over encrypted radio
I was instrumental in integrating a feature that let forward operating units place orders through SUL. Think of it as a big e-commerce system for field logistics. I integrated a crypto radio, an encrypted military radio, hooked directly into the SUL server I maintained in the desert, with no network or intermediary in between. That let the server receive equipment orders over encrypted radio transmissions.
Here is how it worked. A sergeant in the field could order ammunition, equipment or parts, for example truck parts for the Motor Transport division, simply by talking over the radio. The radio, wired straight into that server, delivered the transmission. The server ran voice to text on it, and the order was placed in Small Unit Logistics to start the fulfillment process. No forms, no phone tag, just a spoken request turned into a tracked order.
Step 5: Routing every order through the CSSOC
The server lived in the Combat Service Support Operations Center (CSSOC), the headquarters operations room of the 2nd Force Service Support Group. Officers from each division had desks there and collaborated in person to coordinate operations. I worked for a staff section of the 2nd Force Service Support Group, and when we deployed I worked in the CSSOC. Every order came into the CSSOC and was farmed out to the companies within the group, the divisions within those companies and the platoons within them. All of the section heads and division leadership worked in the CSSOC, so when an order came in it was routed straight to whoever needed to fulfill it. That is order routing and fulfillment workflow, built for a war zone.
Step 6: Tracking every truck, load and Marine leaving the base
Orders bound for forward operating bases were organized onto trucks. By the time a convoy rolled out of the base, the system knew which trucks and which Marines were leaving. It also knew what each truck carried, whether equipment, ammunition or food, and what weapons each Marine had. All of it was tracked in the same massive Oracle database I was instrumental in loading with the equipment data from the mainframe. Every item, from tanks to toothbrushes, was keyed by its nomenclature number, and it all ran on the server I maintained in the desert. That is real time load tracking and asset visibility, from the order to the truck to the Marine.
Step 7: Deploy, train and support in Operation Iraqi Freedom
When I deployed for Operation Iraqi Freedom, I kept SUL updated, trained Marines to use it, and was in charge of a web server that I maintained in support of the war effort. My medal recognizes the custom development, training and deployment of this secure logistics web application. It was used to track Marines, supplies, ammunition, vehicles and equipment for the Marine Logistics Command during the initial invasion of Iraq.
The Technical Picture
- Original stack: ColdFusion application on an Oracle relational database
- Migrated stack: .NET framework with ASPX pages and C#, same Oracle database
- Network: SIPRNet, the Department of Defense Secret Internet Protocol Router Network for classified secret level information, separate from the public internet
- Field ordering: encrypted crypto radio hooked directly into the server I maintained in the desert (not routed through SIPRNet or any intermediary), voice to text on the server, orders placed directly in SUL
- Convoy and load tracking: trucks, Marines, cargo (equipment, ammunition, food) and assigned weapons tracked in Oracle before every truck left the base
- Order routing: orders received in the CSSOC and routed to companies, divisions and platoons for fulfillment
- Data migration: mainframe extract by the gunnery sergeant, custom import scripts by me, records keyed by NSN and TAMCN
- Operations: a web server I ran and maintained during the deployment
- Users: Marines tracking personnel, supplies, ammunition, vehicles and equipment


Results: Migrated Without a Database Rewrite
SUL moved from ColdFusion to .NET without a database rewrite. The mainframe equipment data became searchable on the web through Oracle. Forward units could order supplies by encrypted radio, and every request was routed to the right section for fulfillment. The application stayed updated and supported during the initial invasion of Iraq. I was meritoriously promoted at every opportunity and was honorably discharged as a Sergeant in August 2003 with an active secret security clearance.
Around SUL I also built an Armory Management System that tracked all weapons at the armories across Camp Lejeune, a Tent Management system for deployed tent cities. I also helped build and maintain the 2nd FSSG in garrison website. I also completed advanced programming and database training at Twentynine Palms, California.
What It Taught Me
SUL was my first real platform migration, and the lessons have not changed in more than twenty years.
Protect the data first. When we migrate a site from Drupal, a custom CMS or an aging platform to WordPress, the content, users and records are the asset. We plan the data model before we touch the front end, exactly as I did with Oracle on SUL.
Work with the people who know the old system. The gunny knew the mainframe better than anyone. On every migration today, the client team that lives with the legacy system is our most important partner.
Script the import, do not retype it. Repeatable import scripts let us test, rerun and verify a migration until every record lands correctly.
Plan for the long run. Choosing .NET was about the years after launch. Choosing WordPress today is the same kind of decision: a platform with a huge ecosystem, long term support and room to grow into web development and app development.
Make ordering effortless. A sergeant under pressure should be able to order parts just by talking. Whether it is a field logistics ordering system or a WooCommerce store, the best ordering experience removes every step it can and routes each order to the people who fulfill it.
Stay on call after launch. Running a server in a war zone teaches you that launch day is the start, not the finish. That is why we host and manage the sites and apps we build.
Related Military Case Studies
- Small Unit Logistics: A ColdFusion to .NET Migration for the Marine Corps
- Armory Management System for Camp Lejeune: Custom Asset Tracking
- Tent Management: A Personnel Tracking System for Deployed Marines
- 2nd FSSG: Building the In Garrison Website at Camp Lejeune
- Marine Corps 4067 Computer Programmer: Learning Ada and Databases at 29 Palms
- Gas, Gas, Gas: The Network Emergency Alert I Built During Operation Iraqi Freedom
In My Words
Hearing a sergeant in the field order truck parts over a crypto radio and watching that order land on the SUL server I maintained in the desert is still one of the proudest moments of my career.
Brian Messenlehner
Project leadership by Brian Messenlehner.
Planning a Platform Migration?
From military logistics systems to platform migrations to WordPress, we move critical applications without losing data. If you are planning a migration, a custom web application or a mobile app, tell us about it.
Brief Us on Your Mission
Want to talk about a website, mobile app, migration or AI project? Fill out the Mission Brief and a specialist will follow up to schedule a call and put together a free quote.
Related: platform migrations, how we plan a platform migration, my Marine Corps experience, WordPress for government and military.




