cle_clock
Home > wikikonf >  tom/actions/by kikonf > datasrc







Datasrc

print

Action : tom.datasrc   (Category : tom, Name : datasrc, By : kikonf)
Complete Name : tom.datasrc.by.kikonf
Version : 4.0        License : Modified BSD License

Purpose of the tom category :
Easy to customize. This category use in background the Kikonf Repoz tools to create and configure Apache Tomcat root installs and Catalina bases at any level (server.xml, hosts or defaults).
You can use it to manage the whole Tomcat Architecture.

Purpose of this datasrc plugin : This Action configures a JDBC Datasource (JNDI).

The following shows the Descriptor File for the Action : tom.datasrc

Toggle lines
<!-- Copyright (c) 2008, Patrick Germain Placidoux                          -->
<!-- All rights reserved.                                                   -->
<!--                                                                        -->
<!-- This file is part of Kikonf Public Software.                           -->
<!--                                                                        -->
<!-- Kikonf Public Software is released under the modified BSD License,     -->
<!-- which should accompany it or any part of it in the file "COPYING".     -->
<!-- If you do not have this file you can access the license                -->
<!-- through the WWW at http://www.kikonf.org/license/bsd/license.txt.      -->
<!--                                                                        -->
<!-- Home page: http://www.kikonf.org                                       -->
<!-- Contact: kikonf@gmx.com                                                -->
<!-- ====================================================================== -->
<!--                                                                        -->
<!--                                                                        -->
<!--                                                                        -->
<!-- ====================================================================== -->
<!-- UPDATE     |     DATE     |   CODE   |  REASON                         -->
<!-- ====================================================================== -->
<!--            |              |          |                                 -->
<!--                                                                        -->
<!--                                                                        -->
<!-- ====================================================================== -->

<datasrc

    type = '{\
        *eq:action,\
        *required:True,\
        *display:False\
    }'
    bal = '{*display:False}'
    sub_type = '{\
        *value:configuration,\
        *eq:configuration,\
        *required:True,\
        *deny:True,\
        *display:False\
    }'
    softwares = "{
        '*type':'dict',
        '*dtype':
            {
                'tom':
                {
                    '*ge':'5.5',
                    '*le':'7',
                    '*required':True
                }
            },
        '*deny':True, 
        '*display':False
    }"

    name ='{\
        *required:True,\
        *help:%lang/action.tom.en/datasrc.resource.name.help,\
    }'
    
    __wk__='{\
        *help:%lang/action.tom.en/datasrc.help,\
        *lhelp:%lang/action.tom.en/datasrc.lhelp\
    }'    
>

    <scope 
        cbase = "{'*value':'$[software_tom_catalina_base]', '*type':'str'}"
        service = ''
        engine = ''
        host = ''
        context.global = '{*checkIn:(true,false),*value:false}'
        context = ''
        context.default.global = '{*checkIn:(true,false),*value:false}'
        context.default = '{*checkIn:(true,false),*value:false}'
        resources.global = '{*checkIn:(true,false),*value:false}'

        __wk__ = '{\
            *eq:1,\
            *help:%lang/action.tom.en/scope.help,\
            *lhelp:%lang/action.tom.en/scope.lhelp,\
        }'
    />

    <resource
    
        dbtype = '{\
            *required:True,\
            *checkIn:(derby,hsql,psql,mysql,oracle,db2),\
            *help:%lang/action.tom.en/datasrc.resource.dbtype.help,\
            *lhelp:%lang/action.tom.en/datasrc.resource.dbtype.lhelp,\
        }'
        dbname = '{\
            *required:True,\
            *help:%lang/action.tom.en/datasrc.resource.dbname.help,\
            *lhelp:%lang/action.tom.en/datasrc.resource.dbname.lhelp,\
        }'
        host = '{\
            *help:%lang/action.tom.en/datasrc.resource.host.help,\
            *lhelp:%lang/action.tom.en/datasrc.resource.host.lhelp,\
        }'
        port = '{\
            *help:%lang/action.tom.en/datasrc.resource.port.help,\
            *lhelp:%lang/action.tom.en/datasrc.resource.port.lhelp,\
        }'
        username = '{\
            *required:True,\
            *help:%lang/action.tom.en/datasrc.resource.username.help,\
        }'
        password = '{\
            *required:True,\
            *help:%lang/action.tom.en/datasrc.resource.password.help,\
        }'
        auth = '{\
            *value:true,\
            *checkIn:(true,false),\
            *help:%lang/action.tom.en/auth.help,\
            *lhelp:%lang/action.tom.en/auth.lhelp,\
        }'
        driverClassName=''

        __wk__ = '{\
            *le:1,\
            *help:%lang/action.tom.en/datasrc.resource.help,\
            *lhelp:%lang/action.tom.en/datasrc.resource.lhelp\
        }'

    > 

        <!-- Generally you dont need to set the extended properties unless you know what you arre doing. (please consult the help). 
             The default data source support in Tomcat is based on the DBCP connection pool.
            
            In Tomcat a dataSource is a specific kind of Resource factory based on the DBCP connection pool 
            from the Apache Commons subproject.
            The standard data source resource factory always implements the type: javax.sql.DataSource
            who relays in background on the org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory.
            The extended properties are in fact those supported by the DBCP factory.        
            For mode information see: http://commons.apache.org/dbcp/configuration.html.
        -->
        <extended
	        __wk__ = '{\
	            *le:1,\
	            *help:%lang/action.tom.en/datasrc.resource.help,\
	            *lhelp:%lang/action.tom.en/datasrc.resource.lhelp\
	        }'
		>

            <pool
                initialSize = '{\
                    *value:0,\
                    *type:int,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.pool.initialSize .help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.pool.initialSize .lhelp,\
                }'
                maxActive = '{\
                    *value:8,\
                    *type:int,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.pool.maxActive.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.pool.maxActive.lhelp,\
                }'
                minIdle = '{\
                    *value:0,\
                    *type:int,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.pool.minIdle.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.pool.mindle.lhelp,\
                }'        
                maxIdle = '{\
                    *value:8,\
                    *type:int,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.pool.maxIdle.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.pool.maxIdle.lhelp,\
                }'
                maxWait = '{\
                    *value:-1,\
                    *type:int,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.pool.maxWait.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.pool.maxWait.lhelp,\
                }'     
                __wk__='{\
                    *le:1,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.pool.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.pool.lhelp\
                }'   
            />

            <validation_query
                validationQuery = '{\
                    *help:%lang/action.tom.en/datasrc.resource.extended.request.validation_query.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.request.validation_query.lhelp,\
                }'
                validationQueryTimeout = '{\
                    *value:-1,\
                    *type:int,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.validationQueryTimeout.validation_query.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.validationQueryTimeout.validation_query.lhelp,\
                }'
                testOnBorrow = '{\
                    *value:true,\
                    *checkIn:(true,false),\
                    *help:%lang/action.tom.en/datasrc.resource.extended.testOnBorrow.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.testOnBorrow.lhelp,\
                }'
                testOnReturn = '{\
                    *value:false,\
                    *checkIn:(true,false),\
                    *help:%lang/action.tom.en/datasrc.resource.extended.testOnReturn.validation_query.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.testOnReturn.validation_query.lhelp\
                }'
                __wk__='{\
	        		*display:False,\
                    *le:1,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.validation_query.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.validation_query.lhelp\
                }'
            />

            <!-- The optional evictor thread is responsible for shrinking the pool by removing any conections which are idle for a long time. 
            The evictor does not respect minIdle. Note that you do not need to activate the evictor thread if you only want the pool 
            to shrink according to the configured maxIdle property.
            The evictor is disabled by default and can be configured using the following properties:
            -->
            <evictor_thread
                timeBetweenEvictionRunsMillis = '{\
                    *value:1800000,\
                    *type:int,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.evictor_thread.timeBetweenEvictionRunsMillis.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.evictor_thread.timeBetweenEvictionRunsMillis.lhelp,\
                }'
                numTestsPerEvictionRun = '{\
                    *value:3,\
                    *type:int,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.evictor_thread.numTestsPerEvictionRun.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.evictor_thread.numTestsPerEvictionRun.lhelp,\
                }'
                minEvictableIdleTimeMillis = '{\
                    *value:-1,\
                    *type:int,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.evictor_thread.minEvictableIdleTimeMillis.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.evictor_thread.minEvictableIdleTimeMillis.lhelp,\
                }'
                testWhileIdle = '{\
                    *value:false,\
                    *checkIn:(true,false),\
                    *help:%lang/action.tom.en/datasrc.resource.extended.evictor_thread.testWhileIdle.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.evictor_thread.testWhileIdle.lhelp,\
                }'
                __wk__ = '{\
					*display:False,\
                    *le:1,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.evictor_thread.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.evictor_thread.lhelp\
                }'
            />

            <!-- 
            Another optional feature is the removal of abandoned connections. A connection is called abandoned if the application does not return it to the pool for a long time. 
            The pool can close such connections automatically and remove them from the pool. 
            This is a workaround for applications leaking connections.
            The abandoning feature is disabled by default and can be configured using the following properties:
            -->
            <stale_connections
                removeAbandoned = '{\
                    *value:false,\
                    *checkIn:(true,false),\
                    *help:%lang/action.tom.en/datasrc.resource.extended.stale_connections.removeAbandoned.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.stale_connections.removeAbandoned.lhelp,\
                }'
                removeAbandonedTimeout = '{\
                    *value:300,\
                    *type:int,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.stale_connections.removeAbandonedTimeout.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.stale_connections.removeAbandonedTimeout.lhelp,\
                }'
                logAbandoned = '{\
                    *value:false,\
                    *checkIn:(true,false),\
                    *help:%lang/action.tom.en/datasrc.resource.extended.stale_connections.logAbandoned.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.stale_connections.logAbandoned.lhelp,\
                }'
                __wk__ = '{\
					*display:False,\
                    *le:1,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.stale_connections.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.stale_connections.lhelp\
                }'
            />

           <!-- Finally there are various properties that allow further fine tuning of the pool behaviour: -->
            <others
                defaultAutoCommit = '{\
                    *value:true,\
                    *checkIn:(true,false),\
                    *help:%lang/action.tom.en/datasrc.resource.extended.others.defaultAutoCommit.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.others.defaultAutoCommit.lhelp,\
                }'
                defaultReadOnly = '{\
                    *value:false,\
                    *checkIn:(true,false),\
                    *help:%lang/action.tom.en/datasrc.resource.extended.others.defaultReadOnly.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.others.defaultReadOnly.lhelp,\
                }'
                defaultTransactionIsolation = '{\
                    *checkIn:(NONE,READ_COMMITTED,READ_UNCOMMITTED,REPEATABLE_READ,SERIALIZABLE),\
                    *help:%lang/action.tom.en/datasrc.resource.extended.others.defaultTransactionIsolation.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.others.defaultTransactionIsolation.lhelp,\
                }'
                poolPreparedStatements = '{\
                    *value:false,\
                    *checkIn:(true,false),\
                    *help:%lang/action.tom.en/datasrc.resource.extended.others.poolPreparedStatements.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.others.poolPreparedStatements.lhelp,\
                }'
                maxOpenPreparedStatements = '{\
                    *value:-1,\
                    *type:int,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.others.maxOpenPreparedStatements.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.others.maxOpenPreparedStatements.lhelp,\
                }'
                defaultCatalog = '{\
                    *help:%lang/action.tom.en/datasrc.resource.extended.others.defaultCatalog.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.others.defaultCatalog.lhelp,\
                }'
                connectionInitSqls = '{\
                    *help:%lang/action.tom.en/datasrc.resource.extended.others.connectionInitSqls.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.others.connectionInitSqls.lhelp,\
                }'
                connectionProperties = '{\
                    *help:%lang/action.tom.en/datasrc.resource.extended.others.connectionProperties.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.others.connectionProperties.lhelp,\
                }'
                accessToUnderlyingConnectionAllowed = '{\
                    *value:false,*checkIn:(false,true),\
                    *required:True,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.others.accessToUnderlyingConnectionAllowed.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.others.accessToUnderlyingConnectionAllowed.lhelp\
                }'
                __wk__ = '{\
                    *display:False,\
                    *le:1,\
                    *help:%lang/action.tom.en/datasrc.resource.extended.others.help,\
                    *lhelp:%lang/action.tom.en/datasrc.resource.extended.others.lhelp\
                }'
            />

        </extended>

    </resource>
    
    <link 
        name = '{*help:%lang/action.tom.en/link.help,*lhelp:%lang/action.tom.en/link.lhelp}'
        __wk__ = '{\
            *le:1,\
            *help:%lang/action.tom.en/link.help,\
            *lhelp:%lang/action.tom.en/link.lhelp\
        }'
    />

</datasrc>
							
(Source: <KIKONF_INSTALLATION_DIR>/plugins/actions/tom/datasrc/by/kikonf/ACT_INF/action.xml)


A descriptor file is a WYSISWYG xsd like schema, wich describes what are the supported Tags, Attributes and Attributes values for one Action.
The special Attributes : type, sub_type, bal, softwares, __wk__ are reserved by Kikonf.

The table below summarizes the informations provided by the tom.datasrc Descriptor File :

/datasrc>   This Action configures a JDBC Datasource (JNDI).
Name Default Type Required Denied Help
name     True   %lang/action.tom.en/datasrc.resource.name.help

/datasrc/scope>   A scope refers to configuration Level within the Tomcat scheme.
Required:True
Name Default Type Required Denied Help
cbase $[software_tom_catalina_base] str      
service   str      
engine   str      
host   str      
context.global false (true, false)      
context   str      
context.default.global false (true, false)      
context.default false (true, false)      
resources.global false (true, false)      

/datasrc/resource>   %lang/action.tom.en/datasrc.resource.help
Name Default Type Required Denied Help
dbtype   (derby, hsql, psql, mysql, oracle, db2) True   Which Database ?
dbname     True   The database instance name
host         The hostname or IP of the database server.
port         The Port on which the database instance is listen on.
username     True   The user name part of the credential for the database.
password     True   The password part of the credential for the database.
auth true (true, false)     Authentification Type.
driverClassName   str      

/datasrc/resource/extended>   %lang/action.tom.en/datasrc.resource.help

/datasrc/resource/extended/pool>   Connection Pool tuning.
Name Default Type Required Denied Help
initialSize 0 int     %lang/action.tom.en/datasrc.resource.extended.pool.initialSize .help
maxActive 8 int     Maximum Active Connections
minIdle 0 int     Minimum number of idle dB connections to retain in pool.
maxIdle 8 int     Maximum number of idle dB connections to retain in pool.
maxWait -1 int     Maximum time to wait for a dB connection to become available.

/datasrc/link>   Referencing the Global Resource.
Name Default Type Required Denied Help
name         Referencing the Global Resource.



Trademarks :
  • "IBM", "WebSphere MQ", "Db2" and "AIX" are registred trademarks of International Business Machines Corporation.
  • "Oracle", "MySql", "Java" and "JVM" are a registred trademarks of Oracle and/or its affiliates.
  • "Linux" is a trademark registred to Linus Torvalds
  • "MS SQL Server" is a registred trademark of Microsoft Corporation.
  • "Apache", "Apache Tomcat" and "Tomcat" are trademarks of the Apache Software Foundation.
  • "Java" and "JVM" are a registred trademarks of Oracle and/or its affiliates.
  • Other names may be trademarks of their respective owners.

Copyright © 2011 - Patrick Placidoux, Hélène Malamoud