60 Starting and Stopping ECE

Learn how to start, stop, and restore Oracle Communications Billing and Revenue Management Elastic Charging Engine (ECE).

Topics in this document:

Caution:

Stopping the ECE system is not expected. Stopping all charging server nodes results in data loss. Do not stop all charging server nodes unless you want all data to be removed from the ECE caches. If you stop all charging server nodes, you cannot restore the cached data.

About Starting and Stopping ECE

You start and stop ECE by using Elastic Charging Controller (ECC) start and stop commands on ECE nodes. The syntax is:

start [role | node_name]
stop [role | node_name]

where:

  • role is the node that you want to start.

  • node_name is the name of the node as you defined it in the node-name column of the ECE_home/config/eceTopology.conf file.

For example:

  • This command starts all nodes that have the server role; that is, all charging server nodes:

    start server
  • This command starts all Diameter Gateway instances:

    start diameterGateway
  • This command starts the specific Diameter Gateway instance:

    start diameterGateway1
  • This command starts a node running Pricing Updater:

    start pricingUpdater
  • This command starts the charging server node named ecs1:

    start ecs1
  • The command with no role or node name specified starts or stops all charging server nodes:

    start

Roles and node names can be seen by using a JMX editor to display MBeans.

Starting ECE

Before starting ECE, verify that the NoSQL database is running. The NoSQL database must be running before you start Rated Event Formatter. See the NoSQL database documentation.

To start all of the ECE nodes:

  1. On the driver machine, go to the /bin directory.

  2. Start Elastic Charging Controller (ECC).

    ./ecc
  3. Run the following commands in this order:

    start
    start configLoader
    start pricingUpdater
    start customerUpdater
  4. Verify that the ECE nodes are in a usage processing state:

    1. Access the ECE configuration MBeans in a JMX editor, such as JConsole. See "Accessing ECE Configuration MBeans".

    2. Expand the ECE State Machine node.

    3. Expand StateManager.

    4. Expand Attributes.

    5. Make sure the stateName attribute is set to UsageProcessing.

  5. Run this command to start EM Gateway:

    start emGateway
  6. Run this command to start BRM Gateway:

    start brmGateway
  7. Run this command to start Rated Event Formatter:

    start ratedEventFormatter
  8. Run this command to start Diameter Gateway:

    start diameterGateway
  9. Run this command to start RADIUS Gateway:

    start radiusGateway

Stopping ECE

Note:

Stopping charging server nodes removes all data from memory. For example, if you run stop server, you will lose all cached data.

Non-charging server nodes can be stopped and restarted with no loss of cache data. For example, stopping the following ECE nodes temporarily disrupts real-time data updates coming from other applications, but the updates are processed upon restart of the ECE system:

  • Customer Updater

    stop customerUpdater
  • Pricing Updater

    stop PricingUpdater
  • BRM Gateway

    stop brmGateway
  • External Manager (EM) Gateway

    stop emGateway

Restoring the ECE System

Restarts of the ECE system are not expected because ECE is built to always be running. ECE has built-in high availability and fault tolerance when server redundancy is employed. Server redundancy is a minimum requirement of ECE installations.

If you stop all charging server nodes on a standalone system, you will lose data in Coherence caches.

Patching ECE to upgrade it to a new version does not require restarting the system when you perform a rolling upgrade. See "Upgrading Existing ECE 12.0 Installation" in ECE Installation Guide for more information about rolling upgrades.

If a restart is required after all ECE nodes are stopped, restore the ECE system by doing the following:

  1. In PDC, publish all the PDC pricing data (the metadata, setup, pricing, and profile data) from the PDC database to ECE by running the following command:

    ImportExportPricing -publish -metadata -config -pricing -profile -target [ece] 
  2. In ECE do the following:

    1. On the driver machine, change to the ECE_home/bin directory.

    2. Start ECC.

      ./ecc
    3. Start ECE processes and gateways in the following order:

      Note:

      Depending on your installation, you can start Diameter Gateway, RADIUS Gateway, both Diameter Gateway and RADIUS Gateway, or none.

      start server
      start configLoader
      start pricingUpdater
      start customerUpdater
      start emGateway
      start brmGateway
      start ratedEventFormatter
      start diameterGateway
      start radiusGateway

      All data is now back in the ECE data grid.

      Real-time data updates (coming from BRM) that had been temporarily disrupted due to the shutdown are processed upon restart.

      Diameter Gateway processing that had been temporarily disrupted due to the shutdown is resumed upon restart. For example, the translation of Diameter requests into ECE Java API requests and the processing of push notifications from Elastic Charging Server (the processing of ECE JMS notifications) is resumed.

Troubleshooting Starting ECE

If the start command fails when starting ECE in a large cluster, the problem may be due to the limitation on how many simultaneous SSH connections the machines in your environment can make from another machine or to another machine. The start command, by default, attempts to start ten nodes simultaneously using ten different threads. The start command might file in the following cases:

  • If the maximum number of open sessions permitted per network connection is less than ten on the driver machine.

  • If the maximum number of simultaneous connections to the SSH daemon on the server machine is less than the number of threads attempting to make connections on the server machine.

To resolve the issue, change the number of nodes the start command will start simultaneously, or (if your runtime environment allows), change the limit of simultaneous SSH connections your environment can make from or to a machine.

To set the limit for how many simultaneous SSH connections can be made from the driver machine in your environment:

  1. On the driver machine, stop the SSH daemon.

  2. Open the /etc/ssh/sshd_config file.

  3. Set the MaxSessions property.

    MaxSessions specifies the maximum number of open sessions permitted per network connection. The default is 10.

  4. Save and exit the file.

  5. Start the SSH daemon.

To set the limit for how many simultaneous SSH connections can be made to the server machine in your environment:

  1. On the server machine, stop the SSH daemon.

  2. Open the /etc/ssh/sshd_config file.

  3. Set the MaxStartups property to be equal or more than the number of nodes the start command starts at one time.

    MaxStartups specifies the maximum number of concurrent unauthenticated connections to the SSH daemon on the server machine. Additional connections are dropped until authentication succeeds or the LoginGraceTime expires for a connection. The default is 10.

  4. Save and exit the file.

  5. Start the SSH daemon.

To set the number of nodes the start command will start simultaneously:

  1. On the driver machine, open the ECE_home/config/ece.properties file.

  2. Add the following line to the file:

    numberOfStartCommandsExecutorThreads=number_of_threads

    where number_of_threads is the number of threads the start command uses to start the (same) number of nodes simultaneously. It must be equal to or less than the value of the MaxSessions property set for the given environment.

  3. Save and close the file.