Atom/Molecule/Cloud Install Questions

Document created by rich_patterson Employee on Feb 29, 2016Last modified by chris_stevens on Apr 13, 2017
Version 3Show Document
  • View in full screen mode

If required, AtomSphere users can install atoms, clouds, or molecules locally on their own systems.  System Administrators can then customize these installations to take full advantage of system resources.  One common reason to do this, is to add more memory to the Java machines, for higher volume processing.  This article will primarily focus on Install Related Issues, including some common errors and questions.

 

Reference Guide Articles

Here are some links to our Reference Guide, which you may find useful when performing a local install.

 

Scenarios on How to Install a local Atom, Molecule, or Cloud

Scenario 1 - How do I Install an Atom under Linux?

Installing the Java JRE:

  • Install the JRE from default repositories, or by downloading directly from Oracle/Java's official website
  • Dell Boomi does NOT recommend running OpenJDK, instead run the official Oracle distro
  • Currently the AtomSphere software supports Java7 and Java8.

Set a Hostname:

  • Make sure to have an entry in /etc/hosts for the hostname of the machine and one of its IP addresses.
    • This file must have an entry for a hostname other than localhost.
    • On some VMs, this is not configured by default

Check the Time

  • Make sure that the time and time zones are set correctly on your server.  Failure to do so may result in a Bad Username/Password error during the install.

Create a New User and Group under which to run the atom

  • Running the Atom as root is not recommended
  • Debian/Ubuntu/Red Hat/CentOS
    • debian:/opt# adduser --system --no-create-home --group boomi
    • Next, set the new user’s login to false so they cannot log in at all.  The actual shell you use may be different depending on your distro.  I will set this shell to /bin/false.
      • chsh boomi

Installing the Atom

  • From the Build page, or from the Atom Management screen in the account, download the atom installer.  Choose 32 or 64 bit version.
  • Copy the install script to the server
  • Change users to the "boomi" user created above, and execute the script
  • Choose the directory for the install.  You may need to create this directory ahead of time.
    • The creation of symlinks is not really necessary for this process so feel free to say ’No’ when prompted.
    • There should now be a Boomi_Atomsphere directory, owned by the boomi user and group, where you chose to install the Atom.

Daemonize

  • After the install, there will be a symlink in /etc/init.d to the directory chosen during the install.  In this way, the atom will restart when the server restarts.
  • It may be necessary to modify this script in order to run the atom process under the correct user.  There is more information in the FAQ section below.

 

Scenario 2 - Installation checklist for atoms on linux hosts

1. The FQDN (hostname) should be entered into /etc/hosts and should match to the egress interface of the server (the one connected to the default gateway)

2. Multiple entries of the same FQDN could result in a round-robin behavior. Only have one entry for the full server FQDN.

3. Reserve a static IP address rather than using DHCP

4. If $HOSTNAME environment variable is not automatically set by the Linux OS

  • set it as follows:
    • export HOSTNAME=myboomidev
    • or
    • hostname <hostname>
  • Either way, the hostname must also be referenced in /etc/hosts

5. On RHEL-based servers, Good practice is to assure the FQDN is in the network file and applies to an IP address in /etc/hosts

 

Scenario 3 - Troubleshooting a Linux Atom Install

1. Review these articles:

http://help.boomi.com/atomsphere/GUID-C45BD72F-8375-4E0F-95D8-7E1428707A3A.html

http://help.boomi.com/atomsphere/GUID-DDE05C00-6E04-423B-9073-58557961432A.html

 

2. If you are using a JDK, the path to java should be

<jdk_directory>/jre/bin   ( NOT <jdk_directory>/bin )

 

3. How to make sure you are not using Java through a symlink:

     which java

 

     If the output is /usr/bin/java, then please try

          ls -all /usr/bin | grep java

 

          If the output to that command is similar to:

          ... java -> /usr/lib/jvm/java-6-sun-1.6.0.20/jre/bin/java

                    or

          ... java -> /usr/lib/jvm/java-7-sun-1.7.0.45/jre/bin/java

 

          it means your PATH has not been updated to the actual location of the JRE. The actual location of the JRE is the path after the ->

          You can update the PATH using:

               export PATH=/usr/lib/jvm/java-6-sun-1.6.0.20/jre/bin:$PATH

          and then re-try the install

 

Common Errors

Error: Attempting to start Atom as a windows service and Windows Service fails with File Not Found

One reason that this occurs is because the Path to the executable in the Properties tab is pointing to the incorrect path for the atom.exe.  Confirm that the path is valid and that the file exists, with the correct permissions for the account that is starting the atom service.

 

Error: Installing atom fails to connect to atom.boomi.com

Hostnames andIP Addresses for Connecting with Dell Boomi

Please refer to the reference guide article above, and configure your firewalls and proxy servers to allow the AtomSphere process to connect to both atom.boomi.com and platform.boomi.com

 

Error: Bad Username or Password

You are trying to install the Atom and are receiving a Bad Username or Password error, despite your credentials being correct. The installation log in the <Atom Homebase>/.install4j directory shows an error similar to the following:

  • [ERROR] com.boomi.install.AccountListAction: javax.net.ssl.SSLKeyException: RSA premaster secret error

 

If you are installing under Windows:

Check to make sure that the system time is set properly and try the installer again.

The error may also be due to missing Proxy information. Review your network requirements and try again.

 

If you are installing under Linux:

The problem here is that the installer is not following symlinks properly. You need to put Java's bin folder in front of your path in order to resolve the issue. This can be done with the following command:

  • export PATH=`readlink -f \`which java\` | sed 's/\/java$//'`:$PATH

 

Now, just make sure you rerun the install script from the same shell in which you ran the previous command in order to preserve the environment change you just made.

 

Error: Unable to install atom on linux as regular user

Description:

You have created a boomi user within the platform, that has roles which allow it to create and execute processes.

You are running the atom_install.sh, and specifying this user during the install, but the install loops, and continues to prompt for an account name, but no list is displayed.

 

Solution:

Interrupt the install, and give the user Atom Management privileges in order to use it to install the atom.

 

Error: Unauthorized attempt to add molecule. Account only has permission to have X molecules and has already met that limit

Please contact your account owner to increase the molecule limit on the account.

 

Error: The installation file is corrupted

This problem can be caused by trying to install a 32 bit atom onto a 64 bit system. This problem may also be caused by using a 32 bit version of Java on a 64 bit operating system. Check what version operating system you are running and install the matching version of Java and the atom.

 

Error: Linux Install Error - com.install4j.runtime.installer.InstallerVariables$UndefinedVariableException

During the installation of an atom under a Linux-based operating system you receive an error while the installer is downloading the atom's files.

 

...  Retrieving Build Number Extracting files... Downloading ... Extracting files... uninstall .install4j/ .install4j/uninstall.png .install4j/atom.png data/ bin/ bin/restart.sh bin/atom bin/animatedtrayicon.gif bin/restart.bat bin/trayicon.PNG conf/ conf/systray.xml endorsed/ endorsed/jaxws-api.jar endorsed/saaj-api.jar endorsed/jaxb-api.jar component/ connector/ update/ lib/ Downloading Atom Files Retrieving Connector Id An error occurred: com.install4j.runtime.installer.InstallerVariables$UndefinedVariableException: installer:containerid  ... error truncated ...

 

In order to resolve this, edit your /etc/hosts file and add an entry for the server's hostname.

 

Error: Installing Molecule on Windows fails with "You must select a valid JDK installation before proceeding"

Currently we support Java1.7, or Java1.8,  If you have a later version of Java installed ( 1.9 for example), the installation will default to the latest, JRE9 and fail.

 

Uninstall any version of Java / JRE that newer than that supported by AtomSphere

Atom SystemRequirements

 

Error: Atom will not start: WARNING: Error retrieving configured name. Using localhost

The following error is in the logs:

WARNING: Error retrieving configured name. Using localhost

Jul 07, 2015 5:28:12 PM com.boomi.container.core.BaseContainer$1 uncaughtException

SEVERE: Unhandled exception in thread main.

java.lang.NullPointerException

 

Solution:

Create an entry in /etc/host file for the current hostname

 

Error: 64 Bit Local Atom Install Error

When attempting to install a Windows 64-bit Local Atom, you may receive an error that the install wizard could not find the JRE that corresponds with this Local Atom type.  Even if you attempt to download the lastest version from within the install4j Wizard, you may still receive an error.

 

Check if you have the 64 bit version of Java before installing the 64 bit version of a local atom.

 

To understand which version is installed on your machine, type the following command in the windows command line:

java -version

 

If you receive an error stating that 'java' is not recognized as an internal or external command, operable program or batch file, then retype that command within the same directory your version of Java resides.  For example, if your Java version is found in the C:\Program Files (x86)\Java\bin folder, then navigate to that folder location within the cmd line and then enter java -version

 

The output should specify that you have the '64-Bit Server VM' version:

java version "1.6.0_26"

Java(TM) SE Runtime Environment (build 1.6.0_26-b03)

Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

 

If you get an output similar to:

java version "1.6.0_26"

Java(TM) SE Runtime Environment (build 1.6.0_26-b03)

Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)

 

it means you are still using the 32 bit version of Java. You will need to uninstall the 32 bit Java and install the 64 bit version. You may also need to update the windows path to point to the new version of Java.

 

Error: Using sudo to run the installer fails

The following command can fail with unknown user or NullPointerException.

     sudo su atom_install.sh

 

Please follow these steps:

1. sudo su

2. export JAVA_HOME=/<path>/<to>/jre       <---- this should NOT be a symlink

3. export PATH=$JAVA_HOME/bin:$PATH

4. ./atom_install.sh -c

 

FAQ

What RAID levels, RAID level 1, RAID level 5, RAID level 10, is recommended for Boomi?

 

Each RAID configuration gives tradeoffs with cost, performance, and reliability. It's up to the customer and their own operations team to decide the functionality they want given their anticipated usage.

 

Where do I download the same Java 7 JRE/JDK used by the Boomi Atom Cloud?

Follow this Link: Java Archive Downloads - Java SE 7

 

Starting the Boomi service requires that the clock on the server be in sync. The Boomi installation guide says:

     Ensure that the clock on all Molecule nodes, including central storage services (e.g., NFS), are synchronized regularly using something like NTP.

 

Running ntpd is standard fare for Linux servers. However, during server boot, the Boomi service may fail to start when ntpd starts *after* the atom service starts.

 

To ensure that ntpd starts before the Boomi service starts, add ntpd to the Required-Start directive in the LSB stanza of the atom or molecule service in /etc/init.d and rebuild the contents of /etc/rcN.d to reflect the new order. For example, the LSB stanza in /etc/init.d/atom should look like this:

### BEGIN INIT INFO
# Provides: atom
# Required-Start: ntpd
# Should-Start: java
# Short-Description: Auto-start the atom
# Description: Auto-start the Atom service in runlevels 3 and 5
### END INIT INFO

To rebuild files in /etc/rc3.d,  run “chkconfig --level 35 atom on” (the Boomi service is enabled on run levels 3 and 5). To verify that ntpd will start before the Boomi service, take a directory listing of /etc/rc3.d and note that atom (or molecule) appears numerically after ntpd:

 

$ ls –l /etc/rc3.d

lrwxrwxrwx. 1 root root 14 Mar 20  2014 S58ntpd -> ../init.d/ntpd

lrwxrwxrwx. 1 root root 14 Oct  8 13:50 S59atom -> ../init.d/atom

 

Can a Molecule be installed on a SAN?

A SAN is NOT currently (as of Aug 2013) supported. A molecule would require a cluster aware file system that supports file locking. NFS is currently supported on linux.

 

Can I use a VM machine to host a Molecule's file share?

Yes.  Please make sure all nodes of the cluster have network access to this machine.  Depending on the amount of work planned for this Molecule, you will need to be aware of any network performance/latency concerns.

 

Will Atom/Molecule run on a Windows Server 2012?

Yes, as long as the proper version of java is installed on the server.  (Currently Java version 7 or 8)

 

How to Configure a Molecule to start up on a Distributed File System (DFS)?

A molecule can be installed with the shared folder on a windows Distributed file system (DFS).

 

The DFS service must initialize completely before the molecule services can start.

 

In the Windows Service Manager, configure the Molecule service to a Delayed Start in windows services (see Startup Type in the image below).

 

This option lowers the priority if the service and starts the service up to 1-2 min after the other services have started thus allowing the DFS to be ready for use by the Molecule.

User-added image

 

How can I install a molecule on Amazon Web Services ( AWS )?

Molecule system requirements:

http://help.boomi.com/atomsphere/GUID-0815001F-8949-42EF-9808-3C0B53A29A77.html

 

Molecule Overview:

http://help.boomi.com/atomsphere/GUID-57E709CE-5640-4382-AE92-4FE8A3E7B310.html

 

Molecule Installation Checklists (Windows and Linux):

http://help.boomi.com/atomsphere/GUID-0978A233-1343-4642-985B-160CE423A958.html

http://help.boomi.com/atomsphere/GUID-D3F3667A-89BA-48E9-9109-D49C73F8CF61.html

 

If the AWS instance is new, for windows instances, you will likely need to set up the following first:

  • initialize at a minimum 3 servers in the Amazon Virtual Private Cloud (VPC)
  • identify 1 server to be the fileshare.
  • the recommendation to use an EBS Optimized Instance for production level atoms to atom performance requirements.
  • promote one of the servers to be a Domain Controller since domain users are needed to install the nodes
  • create the domain user
  • configure the firewall rules for the VPC in the Amazon UI to allow for internode communication
  • configure the firewall rules at the server level to allow for internode communication
  • install the molecule using the domain user
  • for AWS, you will need to set up UNICAST for the molecule (Multi-cast will not work),  Instructions for setting up UNICAST are here:
  • Upgrade your molecule to use jgroups3:

 

For more detailed information regarding this, please be sure to review this article as well: Running a Molecule on Amazon Web Services 

 

Can two atoms be installed on one machine?

Yes two atoms can be installed on one machine. Please refer to the “Other Atom Requirements” section in the link below:

http://help.boomi.com/atomsphere/GUID-DDE05C00-6E04-423B-9073-58557961432A.html

 

There is a chance of running into performance issues depending on the machine resources and the number of users that are using this. Just keep in mind the link above does contain machine requirements but that is referring to one atom on a machine.

 

How do I configure my Linux atom to run under a specific Boomi user?

There is a symlink to the main startup script in the /etc/init.d directory called, Atom-atom name, that was put there during installation. However, this script does not use Debian’s standard start-stop-daemon, nor does it have a capability to drop to another user or group. It also does not create a pid file for easy process manipulation. For these reasons, the symlink should simply be deleted.

 

  • Debian/Ubuntu
    • To create a proper startup script, make a copy of /etc/init.d/skeleton  to use as a template.
      • debian:/opt# cp /etc/init.d/skeleton /etc/init.d/boomi-atom
    • Edit this file so that it starts the Atom. Here is an example of what it may look like when finished:

 

#! /bin/sh
### BEGIN INIT INFO
# Provides:          atom
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: atom initscript
# Description:       This file starts and stops an atom.
### END INIT INFO
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/opt
DESC="Boomi Atom"
NAME=atom
DAEMON=/opt/Boomi_AtomSphere/Atom/Atom_debian/bin/$NAME
DAEMON_ARGS="start"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
JAVA_BIN=/opt/java/jre1.6.0_22/bin/java
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions
#
# Function that starts the daemon/service
#
do_start()
{
   # Return
   #   0 if daemon has been started
   #   1 if daemon was already running
   #   2 if daemon could not be started
   start-stop-daemon --start --pidfile $PIDFILE -c boomi:boomi \
       --exec $DAEMON --test > /dev/null || return 1
   start-stop-daemon --start --pidfile $PIDFILE -c boomi:boomi
       --exec $DAEMON -- $DAEMON_ARGS || return 2
   sleep 0.1
   # This creates a proper pidfile
   echo `pidof $JAVA_BIN` > $PIDFILE
}
#
# Function that stops the daemon/service
#
do_stop()
{
   # Return
   #   0 if daemon has been stopped
   #   1 if daemon was already stopped
   #   2 if daemon could not be stopped
   #   other if a failure occurred
   start-stop-daemon --stop --retry=TERM/30/KILL/5 --pidfile $PIDFILE
   RETVAL="$?"
   [ "$RETVAL" = 2 ] && return 2
   # Wait for children to finish too if this is a daemon that forks
   # and if the daemon is only ever run from this initscript.
   # If the above conditions are not satisfied then add some other code
   # that waits for the process to drop all resources that could be
   # needed by services started subsequently.  A last resort is to
   # sleep for some time.
   #start-stop-daemon --stop --oknodo --retry=0/30/KILL/5 \
   #    --pidfile $PIDFILE
   #[ "$?" = 2 ] && return 2
   # Many daemons don't delete their pidfiles when they exit.
   rm -f $PIDFILE
   return "$RETVAL"
}
case "$1" in
start)
   [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
   do_start
   case "$?" in
       0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
       2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
   esac
   ;;
stop)
   [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
   do_stop
   case "$?" in
       0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
       2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
   esac
   ;;
#reload|force-reload)
   #
   # If do_reload() is not implemented then leave this commented out
   # and leave 'force-reload' as an alias for 'restart'.
   #
   #log_daemon_msg "Reloading $DESC" "$NAME"
   #do_reload
   #log_end_msg $?
   #;;
restart|force-reload)
   #
   # If the "reload" option is implemented then remove the
   # 'force-reload' alias
   #
   log_daemon_msg "Restarting $DESC" "$NAME"
   do_stop
   case "$?" in
     0|1)
       do_start
       case "$?" in
           0) log_end_msg 0 ;;
           1) log_end_msg 1 ;; # Old process is still running
           *) log_end_msg 1 ;; # Failed to start
       esac
       ;;
     *)
       # Failed to stop
       log_end_msg 1
       ;;
   esac
   ;;
*)
   #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
   echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
   exit 3
   ;;
esac
:

 

  • Debian/Ubuntu (continued)
    • Set up the symlinks for the init.d script:
      • debian:~# update-rc.d boomi-atom defaults
      • Adding system startup for /etc/init.d/boomi-atom ...
      • /etc/rc0.d/K20boomi-atom -> ../init.d/boomi-atom
      • /etc/rc1.d/K20boomi-atom -> ../init.d/boomi-atom
      • /etc/rc6.d/K20boomi-atom -> ../init.d/boomi-atom
      • /etc/rc2.d/S20boomi-atom -> ../init.d/boomi-atom
      • /etc/rc3.d/S20boomi-atom -> ../init.d/boomi-atom
      • /etc/rc4.d/S20boomi-atom -> ../init.d/boomi-atom
      • /etc/rc5.d/S20boomi-atom ->
      • ../init.d/boomi-atom
    • After installation, the Atom will have started automatically as root, which is not good, so go ahead and kill it before running it through the init script:
      • debian:/opt/boomi# kill `pidof java`
    • Now, when ran for the first time, the script may ask if you would like to delete an install folder. You may safely say yes.
      • debian:~# /etc/init.d/boomi-atom start
      • testing JVM in /opt/java/jre1.6.0_22 ...
      • /opt/Boomi_AtomSphere/Atom/Atom_debian/bin/atom: line 63:
      • /root/.install4j_new: Permission denied
      • rm: remove write-protected regular file `/root/.install4j'? y
  • Red Hat/CentOS/Fedora
    • Startup scripts in the Red Hat family are a little different from those in the Debian family. Here is an example of what one may look like where the atom daemon is ran under the user, ’boomi’:
#!/bin/bash
#
# chkconfig: 2345 80 05
# description: Boomi Atom
# processname: atom
#
# Source function library
. /etc/init.d/functions




# Get network config
. /etc/sysconfig/network


PATH=/sbin:/usr/sbin:/bin:/usr/bin:/opt
DESC="Boomi Atom"
NAME=atom
DAEMON=/opt/Boomi_AtomSphere/Atom/Atom_centos/bin/$NAME
DAEMON_ARGS="start"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
JAVA_BIN=/opt/jre1.6.0_23/bin/java
RETVAL=0


start() {
   echo -n $"Starting atom: "
   # Start me up!
   daemon --user boomi $DAEMON $DAEMON_ARGS
   RETVAL=$?
   echo
   [ $RETVAL -eq 0 ] && touch /var/lock/subsys/atom
   sleep 0.1
   echo `pidof $JAVA_BIN` > $PIDFILE
   return $RETVAL
}


stop() {
   echo -n $"Stopping atom: "
   killproc atom
   RETVAL=$?
   echo
   [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/atom
   rm -f $PID_FILE
   return $RETVAL
}   


restart() {
     stop
   start
}   


reload() {
   stop
   start
}
case "$1" in
start)
     start
   ;;
stop)
     stop
   ;;
status)
   status atom
   ;;
restart)
     restart
   ;;
condrestart)
     [ -f /var/lock/subsys/atom ] && restart || :
   ;;
reload)
   reload
   ;;
*)
   echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
   exit 1
esac
exit $?

 

  • Red Hat/CentOS/Fedora (cont)
    • Now, set up the proper symlinks using the chkconfig command:
      • # cd /etc/init.d
      • # chkconfig --add boomi-atom

 

At this point, even if the server is rebooted, the Atom will still start back up and run under the correct user.

6 people found this helpful

Attachments

    Outcomes