DAC automationUtils.sh Script

Hi Again,

Today I noticed that DAC doesn’t have a method to export DAC repository meta data using the Linux/Unix Shell.

DAC is a windows tool that can also run on Linux. Unfortunately for us Linux users this means that not all of the command line options are available as they come in the form of a .bat file wont work in out native shell.

I was looking for a way to export DAC meta data using the command line, I was fully aware that this task could be achieved using the DAC Client GUI but I wanted something that could be run on a schedule to take backups. After some reading it was revealed that this was possible in Windows but now Linux. I have now converted the automationUtils.bat to automationUtils.sh that can run in Linux and Solaris giving you all the functionality. See the completed script below

#!/bin/ksh
#set -x
#
# Author - Andrew Pazikas
# Date - 10-07-13
# Desc - Originaly a Windows tool automationUtils.bat converted to run as a shell script Linux
#

. ./dac_env.sh

JAVA_HOME=/usr/jdk/instances/jdk1.6.0;export JAVA_HOME;
JAVA=${JAVA_HOME}/bin/sparcv9/java;export JAVA

export SQLSERVERLIB=./lib/msbase.jar:./lib/mssqlserver.jar:./lib/msutil.jar:./lib/sqljdbc.jar
export ORACLELIB=./lib/ojdbc6.jar:./lib/ojdbc5.jar:./lib/ojdbc14.jar
export DB2LIB=./lib/db2java.zip
export TERADATALIB=./lib/teradata.jar:./lib/terajdbc4.jar:./lib/log4j.jar:./lib/tdgssjava.jar:./lib/tdgssconfig.jar:./lib
#export SQLSERVERLIB ; export ORACLELIB ; export DB2LIB ; export TERADATALIB

export DBLIBS=${SQLSERVERLIB}:${ORACLELIB}:${DB2LIB}:${TERADATALIB}
export DACLIB=./DAWSystem.jar:.:
export DACCLASSPATH=${DBLIBS}:${DACLIB}
#export DBLIBS ; export DACLIB ; export DACCLASSPATH;
$JAVA -Xmx1024m -cp $DACCLASSPATH com.siebel.etl.functional.AutomationUtils "$1" "$2" "$3"

Advertisements

9 comments

  1. Craig Walter

    I am experiencing classnotfound issues when running on linux. Did you experience this in the course of developing this approach? I have set the env variables just as you have.
    I noted that there is output from the AutomationUtils main class such as:
    com.siebel.etl.functional.AutomationUtils main
    Aug 29, 2013 12:05:52 PM com.siebel.etl.etlmanager.DerivedConstants getDacDomainHome
    INFO: The DAC_DOMAIN_HOME set to /app/oracle/product/DAC/bifoundation/dac
    Could you post the output you see?

    • pazyp

      Hi,

      I am on vacation at the moment I will take a look when I return.

      Initial thoughts would be confirm you have DAC_HOME set in you shell environment variables or add the following line to the to of the top of the script

      export DAC_HOME=’location of your DAC server’

      Let me know how it goes

  2. Shanker

    hi.

    I am intrested to know how you are using this script to export the DAC metadata to a folder ?
    basically I would like to do same, instead of using GUI (DAC > Tools > DAC Repository Management > Export/Import)

    I would like to export without starting the DAC GUI and using commandLine script in UNIX.
    if you achieved it, could you please share your thoughts ?

    Thank you.

  3. Shanker

    hi.

    I am able to get this working and it is good but when doing following. I have following issues,
    Lets say, I have 2 instances, DAC_SXX and DAC_AXX

    now I want to export from DAC_SXX using command Line and import using command Line in to DAC_AXX.

    on instance DAC_SXX
    step 1. I use flag ‘export’ and do not specify any container(because if I import only specific container then its wiping out existing containers in DAC_AXX), so far so good.

    on instance DAC_AXX
    step 2. exportCategory …. system (to export all the values of setup)

    on instance DAC_AXX
    Step3, I use flag import and that imports all containers, so far so good.

    on instance DAC_AXX
    step4. importCategory …. system (to import all the values of setup)

    after step4, I do not see the values of DAC_AXX
    which I must do manually enter all those to have my connections working properly.

    did you encountered such scenario ? and did you see same problem as me ?
    the whole concept of automization do not make sesnse., if I must manually enter all connection details in setup view after import.

    Thanks
    shanker

    • pazyp

      Hi,

      I do not have the same issue as my dac servers are on different machines so I have no need to reconfigure dac each time.

      You will need to run serverSetupPrompt.sh before an import. You may be able to script this using a parameter file

  4. Karol Kanicki

    hi,

    AFAIK new versions of DAC contain automationUtils.sh file, that [probably 🙂 ] may be executed in linux / unix env.
    Anyway I’m not able to configure the “automationutils.propperties” file correctly, could U help me to do so?
    For example, which cwallet.sso file shall be used? [there are many file with that name existing in /$DAC_HOME directory]
    thx in advance, rgrdz!

    • pazyp

      Hi,

      If you configure DAC and use the Unix client to access DAC then you should use

      $DAC_HOME/conf-shared/security/repository/cwallet.sso

      Hope this helps, let me know how you get on.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s