This documentation is for WSO2 API Manager 2.0.0 View documentation for the latest release.
Product Profiles - API Manager 2.0.0 - WSO2 Documentation
||
Skip to end of metadata
Go to start of metadata

When a WSO2 product starts, it starts all components, features and related artifacts bundled with it. Multi-profile support allows you to run the product on a selected profile so that only the features specific to that profile along with common features start up with the server.

Starting a product on a preferred profile only blocks/allows the relevant OSGI bundles. As a result, even if you start the server on a profile such as the api-store for example, you can still access the API Publisher web application.

WSO2 APIM Profiles

The following are the different profiles available in WSO2 API Manager (WSO2 APIM).

ProfileCommand Option with Profile NameDescription
Gateway manager
-Dprofile=gateway-manager

Only starts the components related to the API Gateway.

You use this when the API Gateway acts as a manager node in a cluster. This profile starts frontend/UI features such as login as well as backend services that allow the product instance to communicate with other nodes in the cluster.

Gateway worker
-Dprofile=gateway-worker -DworkerNode=true    

Only starts the components related to the API Gateway.

You use this when the API Gateway acts as a worker node in a cluster. This profile starts the backend features for data processing and communicating with the manager node.

Key Manager
-Dprofile=api-key-manager

Only starts the features relevant to the Key Manager component of the API Manager.

Traffic Manager
-Dprofile=traffic-manager


Only starts the features relevant to the Traffic Manager component of the API Manager.

The Traffic Manager helps users to regulate API traffic, make APIs and applications available to consumers at different service levels, and secure APIs against security attacks. The Traffic Manager features a dynamic throttling engine to process throttling policies in real-time, including rate limiting of API requests.

API Publisher
-Dprofile=api-publisher

Only starts the front end/backend features relevant to the API Publisher.


Developer Portal (API Store)
-Dprofile=api-store

Only starts the front end/backend features relevant to the Developer Portal (API Store).


Starting an API-M profile

  1. Perform the following configurations on the profile.

    When using this profile, make sure you configure the Gateway Manager as described in the Starting the Gateway Manager section.

    When using this profile, make sure you configure the Gateway Worker as described in the Starting the Gateway Worker section.

    Carryout the following configurations on the Key Manager node before starting the Key Manager.

    1. Open the <APIM_HOME>/repository/conf/axis2/axis2.xml file and remove the configuration section that starts with <transportSender name="ws" class="org.wso2.carbon.websocket.transport.WebsocketTransportSender">.
    2. In the <APIM_HOME>/repository/conf/api-manager.xml file, set the values of the following elements to false.

      <ThrottlingConfigurations>
      ...
      <DataPublisher>
      <Enabled>true</Enabled>
      </DataPublisher>
      ...
      </ThrottlingConfigurations>
      <ThrottlingConfigurations>
      ...
      <JMSConnectionDetails>
      <Enabled>true</Enabled>
      </JMSConnectionDetails>
      ...
      </ThrottlingConfigurations>

    When using this profile, make sure you configure the Traffic Manager as described in the Configuring the Traffic Manager section.

    Carryout the following configurations on the Publisher node before starting the Publisher.

    1. Set the values of the following elements to false in the <APIM_HOME>/repository/conf/api-manager.xml file.

      <ThrottlingConfigurations>
      ...
      <DataPublisher>
      <Enabled>true</Enabled>
      </DataPublisher>
      ...
      </ThrottlingConfigurations>
      <ThrottlingConfigurations>
      ...
      <JMSConnectionDetails>
      <Enabled>true</Enabled>
      </JMSConnectionDetails>
      ...
      </ThrottlingConfigurations>
    2. Open the <APIM_HOME>/repository/conf/axis2/axis2.xml file and remove the configuration section that starts with <transportSender name="ws" class="org.wso2.carbon.websocket.transport.WebsocketTransportSender">.

    Carryout the following configurations on the Store (Developer Portal) node before starting the Store.

    1. Before starting the server, set the values of the following elements to false in the <APIM_HOME>/repository/conf/api-manager.xml file.

      <ThrottlingConfigurations>
      ...
      <DataPublisher>
      <Enabled>true</Enabled>
      </DataPublisher>
      ...
      </ThrottlingConfigurations>
      <ThrottlingConfigurations>
      ...
      <JMSConnectionDetails>
      <Enabled>true</Enabled>
      </JMSConnectionDetails>
      ...
      </ThrottlingConfigurations>
    2. Open the <APIM_HOME>/repository/conf/axis2/axis2.xml file and remove the configuration section that starts with <transportSender name="ws" class="org.wso2.carbon.websocket.transport.WebsocketTransportSender">.

  2. Carryout the following configuration changes on all the profiles with the exception of the Gateway profiles.

    1. Open the axis2.xml file and comment out the following.

      <transportSender name="ws" class="org.wso2.carbon.websocket.transport.WebsocketTransportSender">
      <parameter name="ws.outflow.dispatch.sequence" locked="false">outflowDispatchSeq</parameter>
      <parameter name="ws.outflow.dispatch.fault.sequence" locked="false">outflowFaultSeq</parameter>
      </transportSender>
    2. Delete the WebSocketInboundEndpoint.xml file from the <APIM_HOME>/repository/deployment/server/synapse-configs/default/inbound-endpoints directory

  3. Optionally, you can remove the web apps that are unnecessary to each node from the <APIM_HOME>/repository/deployment/server/webapps directory. The web apps required for each node are listed below.

    ProfileRequired web apps
    Gateway Manageram#sample#pizzashack#v1 (only needed if the Pizzashack sample API is used)
    api#am#admin#v0.10 (only needed if you want to perform administrative tasks through Gateway Manager)
    authenticationendpoint
    Gateway Workeram#sample#pizzashack#v1 (only needed if the Pizzashack sample API is used)
    api#am#admin#v0.10 (only needed if you want to perform administrative tasks through Gateway Manager)
    Key Managerauthenticationendpoint
    client-registration#v0.10
    oauth2 throttle#data#v1
    Traffic Managershindig (only needed if you use the WSO2 Remove existing web apps and jaggery apps from the <APIM_HOME>/repository/deployment/server directory.CEP Dashboard)
    API Publisheram#sample#pizzashack#v1 (only needed if the Pizzashack sample API is used)
    api#am#publisher#v0.10
    authenticationendpoint
    API Store (Developer Portal)api#am#store#v0.10
    authenticationendpoint

  4. Run the required WSO2 APIM profile.
    Execute one of the following commands based on your OS:

    You can start only one profile at a time.

    OSCommand & Example
    Windows
    <PRODUCT_HOME>/bin/wso2server.bat -Dprofile=<preferred-profile> --run

    For example to start the API Store execute the following command.

    <APIM_HOME>/bin/wso2server.bat -Dprofile=api-store --run
    Linux/Solaris
    sh <PRODUCT_HOME>/bin/wso2server.sh -Dprofile=api-store

    For example to start the API Store execute the following command.

    sh <APIM_HOME><APIM_HOME>/bin/wso2server.sh -Dprofile=api-store

How multi-profiling works

Starting a product on a preferred profile starts only a subset of features bundled in the product. In order to identify what feature bundles apply to which profile, each product maintains a set of bundles.info files in the <PRODUCT_HOME>/repository/components/<profile-name>/configuration/org.eclipse.equinox.simpleconfigurator directories. The bundles.info files contain references to the actual bundles. Note that <profile-name> in the directory path refers to the name of the profile. For example, when there's a product profile named webapp, references to all the feature bundles required for webapp profile to function are in a bundles.info file saved in the <PRODUCT_HOME>/repository/components/webapp/configuration/org.eclipse.equinox.simpleconfigurator directory.

Note that when you start the server without using a preferred profile, the server refers to the <PRODUCT_HOME>/repository/components/default/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info file by default. This file contains references to all bundles in the <PRODUCT_HOME>/repository/components/plugins directory, which is where all components/bundles of a product are saved.


  • No labels