Install Oracle XE on Fedora

    This document describes how to install Oracle Database 10g Express Edition on Fedora Linux 12. It may be useful for later versions as well.

    Download installation packages

    Look for Oracle 10g XE for Linux. Accept the license agreement and download one of the RPM packages. Choose the Universal package if you are interested in a localized installation.

    Install RPM

    An installation guide is available from Oracle. The next few sections summarize the instructions and highlight potential pitfalls.

    While you can install the downloaded RPM by double clicking on it, it is advisable to install it from a terminal. The RPM package manager sometimes fails to execute the post install steps with no obvious graphical feedback. Conversely a command line installation  prints any error right there in the console.

    To install the Oracle XE package, execute:

    # yum --nogpgcheck localinstall oracle-xe-univ-

    Post install failures stem from missing packages/commands that the RPM does not list as dependencies. In particular, a test system lacked the bc command, which is used by the RPM post install script. The absence of a required command manifests itself as an error message in the console and a subsequent failure to start the database service.

    bc: command not found

    In this case, installing the bc package, plus reinstalling oracle-xe-univ, solved the problem.

    # sudo yum install bc

    Configure database

    Once the RPM installation completes, configure the database with the command below.

    # service oracle-xe configure

    When prompted, enter the following information.

    • Port for the web console; defaults to 8080. Consider port 8180 instead, as Tomcat/JBoss AS also default to  8080.
    • Port for the database manager. The default value 1521 is fine.
    • Password for SYS and SYSTEM administrative account.
    • Enable or disable automatic launch on startup.

    After capturing the desired settings the Oracle database instance is ready for use. Note that the configuration process creates a single database called "XE" and no other databases can be created. New users are allowed, though.

    Enable manual database start

    The oracle-xe init script appears to be unprepared for the case automatic launch is disabled: the start and stop operations simply exit in this case.

    case "$1" in
        if test -f "$CONFIGURATION"
          if test "$ORACLE_DBENABLED" != "true" 
            exit 0
          echo "Oracle Database 10g Express Edition is not configured."
          exit 0

    A solution proposed in the Oracle forums is to enable automatic launch and then start the service as follows.

    # service oracle-xe enable
    # service oracle-xe start

    To stop the database, call stop followed by disable to prevent the database from starting in the next boot.

    # service oracle-xe stop
    # service oracle-xe disable

    An alternate, permanent solution is to enable automatic launch and turn the service off. The database will not start in the next boot and manual start will be possible.

    # service oracle-xe enable
    # chkconfig oracle-xe off

    Set the environment variables

    Edit the login or profile files so that the Oracle Database XE environment variables are set properly each time you log in or open a new shell.

    $ emacs .bash_profile

    # Oracle Database XE environment
    . /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/

    Create login

    Point a browser to http://localhost:8180/apex, replacing 8180 with the web console port chosen in the previous section. Log in as system, providing the password selected earlier.

    Once in the console, click Administration and select Database Users. Now click on create user.


    Use jbpm3/jbpm3 as the username/password. Leave the CONNECT and RESOURCE roles checked. Grant the CREATE TABLE and CREATE SEQUENCE privileges.

    Create tables

    Start the SQL command line.

    $ sqlplus jbpm3
    Enter password:

    Once the tables are created, leave SQL*Plus with the EXIT command.

    SQL> exit


    Error ORA-12519 is reported

    The exception below may be thrown under moderate to heavy load.

    java.sql.SQLException: Listener refused the connection with the following error:
    ORA-12519, TNS:no appropriate service handler found
    The Connection descriptor used by the client was: localhost:1521:XE
            at oracle.jdbc.driver.DatabaseError.throwSqlException(
            at oracle.jdbc.driver.DatabaseError.throwSqlException(
            at oracle.jdbc.driver.T4CConnection.logon(
            at oracle.jdbc.driver.PhysicalConnection.<init>(
            at oracle.jdbc.driver.T4CConnection.<init>(
            at oracle.jdbc.driver.T4CDriverExtension.getConnection(
            at oracle.jdbc.driver.OracleDriver.connect(
            at java.sql.DriverManager.getConnection(
            at java.sql.DriverManager.getConnection(
            at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(
            at org.hibernate.jdbc.ConnectionManager.openConnection(
            ... more

    Oracle XE ships with a tight limit on the number of user processes (40). To allow more processes, start the SQL command line.

    $ sqlplus system

    Type the password for the system user. Enter the next command afterwards. It will raise the processes parameter to 80.

    SQL> alter system set processes=80 scope=spfile;

    Now quit sqlplus. Finally, restart the oracle-xe service. The problem will be gone.

    # service oracle-xe restart

    Source: Oracle forums


    Happy hacking