Submitted by Anonymous (not verified) on Wed, 01/09/2013 - 00:00
Forums

Hi;
 
In the Programmers Guide we find the following information:
 
"Extract a OEM version of IceBreak.
If you want IceBreak to be a part of your application i.e. install IceBreak along with you product then you
can extract all the necessary programs, files and other objects required into a save-file which you again
restore into you product library either when you install on the customer site or when you save your
product before shipment.
A good or bad thing ( depends on how you look at it) is, that you lock your IceBreak version to version
you extracts."

 
We have the following libraries on our development system:
 ICEBREAK 
 ICEBREAK2
 ICECAP   
 ICECAPDB

We also have the following directories:
  IceBreak     
  IceBreakSystem
 
We have created an IceBreak server OPRSKODE we would like to install at our customers. It has the following attributes:
  Http Root Path . . . . :   /www/OPRSKODE
  Application Library  . :   OPRSKODE  
  Library list: OPRSKODE  QTEMP  BUENGCHG   BUENGDTA  BUENGGEN  QGPL
 
Questions:
1. Should we copy the objects in the ICEBREAK libraries into library OPRSKODE?
2. Should we copy the objects in the ICEBREAK directories and subdirectories into "/www/OPRSKODE"?
3a. If Yes to the second question: "/www/OPRSKODE/system" already exists. Overwrite with objects from "/icebreak/system"?
3b: If No to the second question: Should we copy "IceBreak" directory as a subdirectory in "/www/OPRSKODE", i.e. "/www/OPRSKODE/IceBreak"?
OR.. Are we completly on "berrytour" as we say in norwegian ...
 
Best regards,
Pål Thorkildsen

Niels Liisberg

Thu, 01/10/2013 - 00:00

Hi Pål,

Here is some information on OEM:

OEM, Bundle IceBreak
7.1 Ship IceBreak allong with your product (COPY)

OEM - (Original equipment manufacturer) means the original manufacturer of a component for a product,
which may be resold by another company. In the case of IceBreak it means you can put all the IceBreak
features into you own software package and ship your package and IceBreak in one go.
As an alternative, you can let your customers install IceBreak from the web, and just configure you OEM
server ( or servers) once and let your application have control over license authorization.
In both cases you have the option to run IceBreak servers in you own subsystem as a part of you own
Product.
 
Obtain a OEM licence key
Before you can make an OEM version of IceBreak you need to contact the IceBreak support team at
mailto:support@system-method.com to get a OEM licence key. An OEM licence key let you create a
server instance, and run that server from your own subsystem
 
OEM Licence Exit Program
You need a OEM licence exit program in you application library that returns your OEM key (or keys) to
the IceBreak core. The name of this program is by default SVCOEMEXIT. This can be a simple RPG
program or even a CLP as in the following example

Pgm Parm(&licXml)
/* Simply return the Licence XML string for your product -
----------------------------------------------------- */
Dcl &licXml *Char (2048)
chgvar &licXml ('-
  <license>-
    <product id="OEM-ICEADM" service="ADMIN" expires="*PERM" liccode="517-391-473" text="IceBreak </license>-
')
return
EndPgm   

Basically this program returns a string containing a XML document. You can have one or more products
of you own in this XML string. The OEM-exit program need to be placed in the application library for you
server instance
 
· id - This is your global wide unique product identification. You receive this from the IceBreak support
team.
 
· service - The service name you provide; this also the name of you application server in IceBreak. For
OEM servers the name can be up to 8 char long.
 
· expires - The date when this licence code will expire in format CCYY-MM-DD or *PERM if this OEM
licence continues infinitely.
 
· text - Any descriptive text of you choice to describe your product.
Now you have two options: You can imbed IceBreak as a part of your own application library or you can
ship you application run on to of any type of IceBreak server installed. Let me explain both options:
 
Imbed IceBreak OEM in you own application library.
If you want to imbed IceBreak as a part of your application i.e. install IceBreak along with you product
then you can extract all the necessary programs, files and other objects required into a save-file which
you again restore into you product library either when you install on the customer site or when you save
your product before shipment.
 
A good or bad thing ( depends on how you look at it) is, that you lock your IceBreak version to version
you extracts. Of cause you can redo the imbed process to upgrade to a new version of IceBreak. This,
however, is not done automatically.
 
This is the process:
1. Extract the IceBreak core from you installation:
2. Install the extracted IceBreak core in you application library
3. Prepare your installation
4. Deploy and run
 
Log on as QSECOFR or a user with *SECADM and open an IBMi command prompt and enter:
===> GO ICEBREAK
===> EXPICEOEM OEMCODE('OEM-ICEADM') SAVF(QGPL/MYICEBREAK) WORKLIB(QTEMP)
===> RSTOBJ OBJ(*ALL) SAVLIB(QTEMP) DEV(*SAVF) SAVF(QGPL/MYICEBREAK) RSTLIB(MYICEOEM)
 
· OEMCODE - This is your global wide unique product identification. You receive this from the IceBreak
· SAVF - Is the location where you store the core
· RSTLIB - Your application library to contain the icebreak core. MYICEOEM is just used for this
Example
 
Now you can prepare the server in your library
Relogon on as QSECOFR or a user with *SECADM and open an IBMi command prompt and enter:
 
===> ADDLIBLE MYICEOEM
===> WRKICESVR
 
Now add a server with the name of the service provided for you in the OEM licence agreement.
 
Now you can run the command STRICESVR from any batch program in your subsystem, or configure the
job description to submit to your application subsystem. by default this wil be jobqueue SVC which is
provided by the IceBreak core.
 
Finally you can now deploy you application library with IceBreak build in. That is all there is to it.
 
 
Best regards,
Niels Liisberg

Regarding the /system directory when you save your OEM server:

The /system is just a link – it is a virtual path that links to /icebreak/system – so each server has a /system folder, but only one physical exists on the disk. And IceBreak will automatically link the system folder when the server starts:

So before you save you application you can just use the unlink command:

ENDICESVR myServer
RMVLNK OBJLNK('/www/myServer/system')

Do you save:

STRICESVR myServer

And the /system link is rebuild.

Best regards,
Niels Liisberg