プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの管理
12c (12.2.1.3.0)
E90329-05
目次へ移動
目次

前
次

8 ユニバーサル接続プール・データ・ソースの使用

ユニバーサル接続プール(UCP)データ・ソースは、Oracle Universal Connection Poolingを使用してOracle Databaseに接続するユーザー用のオプションとして提供されています。UCPは、Oracle WebLogic Server接続プーリングに対する代替接続プーリング・テクノロジを提供します。

ユニバーサル接続プール・データ・ソースとは

ユニバーサル接続プール(UCP)データ・ソースは、UCPを使用してOracle Databaseに接続するユーザー用のオプションとして提供されています。UCPは、Oracle WebLogic Server接続プーリングに対する代替接続プーリング・テクノロジを提供します。

ノート:

通常、Oracleデータベースとの接続を確立するには、Oracle WebLogic ServerでActive GridLinkデータ・ソース、マルチ・データ・ソース、またはJDBCデータ・ソースを使用することをお薦めします。

UCPデータ・ソースを使用する場合、WebLogic Serverでは次のサポートが提供されます。

  • 汎用データ・ソース、マルチ・データ・ソースまたはActive GridLinkデータ・ソースの代替データ・ソースとしての構成。

  • データ・ソースのデプロイおよびアンデプロイ。

  • 基本的なモニタリングおよび統計:

    • ConnectionsTotalCount

    • CurrCapacity

    • FailedReserveRequestCount

    • ActiveConnectionsHighCount

    • ActiveConnectionsCurrentCount

  • Oracle簡易ドライバ、XAドライバおよびアプリケーション・コンティニュイティ・ドライバでの動作保証。

UCPデータ・ソースでは、次の機能はサポートされません。

  • WebLogic Serverトランザクション・マネージャ(1フェーズ、LLR、JTS、JDBC TLog、決定子リソースなど)

  • 追加のライフサイクル操作(中断、再開、停止、強制停止、開始など)。

  • 任意の接続プールの汎用サポート。

  • Oracle WebLogic Serverセキュリティ・オプション。

  • 前にリストされているもの以外のJDBCドライバ。

  • JMS、リース、EJBなどのOracle WebLogic Serverデータ操作。

  • UCPデータ・ソースに対するRMIアクセス。

UCPデータ・ソースの実装は、疎結合されており、アプリケーションによる新しいUCP機能の使用をサポートするためにucp.jarを切り替えることができます。UCPデータ・ソースは、アプリケーション・スコープ環境や、パッケージ化またはスタンドアロン・モジュール環境ではサポートされません。

Oracle Universal Connection Poolの詳細は、『Oracle Universal Connection Pool for JDBC開発者ガイド』を参照してください。

ユニバーサル接続プール・データ・ソースの作成

WebLogicドメインにUCPデータ・ソースを作成する場合、WebLogic Server管理コンソール、WebLogic Scripting Tool (WLST)またはFusion Middleware Controlを使用できます。

WebLogic Server管理コンソールとWLSTによる方法については、次の各項を参照してください。

Fusion Middleware Controlを使用してUCPデータ・ソースを作成する手順については、『Fusion Middleware ControlによるOracle WebLogic Serverの管理』のJDBC UCPデータ・ソースの作成に関する項を参照してください。

WebLogic Server管理コンソールでのUCPデータ・ソースの構成

WebLogic Server管理コンソールでUCPデータ・ソースを作成する手順については、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのUCPデータ・ソースの作成に関する項を参照してください。この手順には、データ・ソースの構成ウィザードにアクセスする方法も含まれます。

次の各項では、WebLogic Server管理コンソールからデータ・ソースの構成ウィザードを使用して、データ・ソースを作成するために使用する基本ステップの概要について説明します。

JDBCデータ・ソースのプロパティの設定

「JDBCデータ・ソースのプロパティ」セクションには、データ・ソースのアイデンティティとデータベース接続でのデータの処理方法を決定するオプションが含まれます。これらのプロパティを構成するためのガイドラインは、次のとおりです。

  • データ・ソース名 - 「名前」フィールドにUCPデータ・ソースの名前を入力します。JDBCデータ・ソースの名前は、WebLogicドメイン内でデータ・ソースを識別するために使用されます。システム・リソース・データ・ソースの場合、そのリソース以外のすべてのJDBCシステム・リソース(データ・ソースを含む)間で一意の名前にする必要があります。名前の競合を避けるために、データ・ソースの名前は、その他の構成オブジェクト(サーバー、アプリケーション、クラスタ、JMSキュー、JMSトピック、JMSサーバーなど)の名前の間でも一意にする必要があります。

  • スコープ - 使用可能なスコープのリストからデータ・ソースのスコープを選択します。スコープは、「グローバル」(ドメイン・レベル)または既存の「リソース・グループ」や「リソース・グループ・テンプレート」に設定できます。

  • JNDI名 - 「JNDI名」フィールドにUCPデータ・ソースのJNDI名を入力します。単一の名前または複数の名前でJNDIツリーにバインドされるように、データ・ソースを構成します。単一のJDBC接続プールを指す複数のデータ・ソースを含む従来の構成のかわりに、複数JNDI名のデータ・ソースを使用できます。詳細は、『Oracle WebLogic Server JNDIアプリケーションの開発』を参照してください。

  • 「データベースのタイプ」および「ドライバ」 - UCPデータ・ソースは、Thin XA、非XAおよびアプリケーション・コンティニュイティ(リプレイ)・ドライバという3つのOracleドライバで動作保証されています。メニューから必要なドライバを選択します。

表8-1に、ドライバとJDBC接続ファクトリのサポートされる組合せを示します

表8-1 UCPデータ・ソースでサポートされるドライバと接続ファクトリの組合せ

ドライバ ファクトリ(ConnectionFactoryClassName)
oracle.ucp.jdbc.PoolDataSourceImpl (デフォルト) oracle.ucp.jdbc.PoolDataSourceImpl
oracle.ucp.jdbc.PoolXADataSourceImpl oracle.jdbc.xa.client.OracleXADataSource
oracle.ucp.jdbc.PoolDataSourceImpl oracle.jdbc.replay.OracleDataSourceImpl

ノート:

現時点では、リプレイ・ドライバはXAトランザクションをサポートしていません。

表8-1のリストにある非XAドライバを、表にあるXAファクトリで指定すると、エラーが生成されます。表に含まれない値を指定しても、それらは検証されません。

jdbc-driver-paramsdriver-nameが指定されていない場合、デフォルトでoracle.ucp.jdbc.PoolDataSourceImplに設定されます。

サポートされるドライバ名を指定したが、ConnectionFactoryClassName接続プロパティを指定しない場合、表8-1の対応するエントリが使用されます。サポートされるドライバ名を指定しない場合、エラーが生成されます。

接続プロパティの設定

接続プロパティは、データ・ソースとDBMSとの間の接続を構成するために使用します。管理コンソールでUCPデータ・ソースの接続プロパティを入力する場合、2つの方法があります。

ウィザードの「接続プロパティ」ページには、UCPドライバに使用できるすべての接続プロパティが表示されるため、適切な値を入力できます。別の方法として、「データベース接続のテスト」ページの「プロパティ」テキスト・ボックスに、propertyName=valueという書式を使用して直接プロパティを入力することで、プロパティを構成できます。「接続プロパティ」ページで入力した値は、「プロパティ」テキスト・ボックスにすでにリストされています。

表8-2では、UCPデータ・ソースで構成できる接続プロパティについて説明します。UCP接続プロパティの詳細は、次を参照してください。PoolDataSourceImplクラス(Oracle Universal Connection Pool for JDBC Java APIリファレンス)。属性は、PoolDataSourceImplクラスのセッターによって決定されます。set接頭辞なしの属性名を使用してください。名前の大文字と小文字は区別されません。

表8-2 UCP接続プールのプロパティ

プロパティ タイプ 説明

AbandonedConnectionTimeout

int

中止接続タイムアウトを設定します。

有効値の範囲は、0からInteger.MAX_VALUEまでです。デフォルトは0です。

ConnectionFactoryClassName

String

接続ファクトリのクラス名を設定します。

ConnectionFactoryProperties

name=value

接続ファクトリの複数の接続ファクトリ・プロパティを設定します。

ConnectionFactoryProperty

name=value

接続ファクトリの1つの接続ファクトリ・プロパティを設定します。

ConnectionHarvestMaxCount

int

接続収集の発生時に収集できる接続の最大数を設定します。

ConnectionHarvestTriggerCount

int

接続プールの接続収集が発生するときに使用可能な接続の数を設定します。

ConnectionLabelingHighCost

int

接続ラベリングで接続を高コストとして識別するコスト値を設定します。

ConnectionPoolName

String

接続プール名を設定します。

ConnectionProperties

name=value

接続ファクトリの複数の接続プロパティを設定します。

ConnectionProperty

name=value

接続ファクトリの1つの接続プロパティを設定します。

ConnectionWaitTimeout

int

使用中の接続をクライアントが解放するまでの待機時間(秒)を設定します。

有効値の範囲は、0からInteger.MAX_VALUEまでです。デフォルトは3です。

DatabaseName

String

データベース名を設定します。

DataSourceName

String

データ・ソース名を設定します。

説明

String

データ・ソースの説明を設定します。

FastConnectionFailoverEnabled

Boolean

このプール対応のデータ・ソースを使用してアクセスされる接続プールの高速接続フェイルオーバー(FCF)を有効化します。有効な値は、trueおよびfalseです。

HighCostConnectionReuseThreshold

int

接続ラベリングの高コストの接続再使用しきい値を設定します。

InactiveConnectionTimeout

int

非アクティブ接続タイムアウトを設定します。

有効値の範囲は、0からInteger.MAX_VALUEまでです。デフォルトは0です。

InitialPoolSize

int

初期プール・サイズを設定します。

有効値の範囲は、0からInteger.MAX_VALUEまでです。これを最大プール・サイズより大きい値に設定すると無効になります。デフォルトは0です。

LoginTimeout

int

ログイン・タイムアウトを設定します。

MaxConnectionReuseCount

int

接続再使用数プロパティを設定します。

MaxConnectionReuseTime

long

接続再使用時間プロパティを設定します。

MaxIdleTime

int

プールで使用可能な接続のアイドル・タイムアウトを設定します。

MaxPoolSize

int

接続の最大数を設定します。

有効値の範囲は、1からInteger.MAX_VALUEまでです。デフォルトはInteger.MAX_VALUEです。

MaxStatements

int

接続でプールするかキャッシュできる文の最大数を設定します。

MinPoolSize

int

接続の最小数を設定します。

有効値の範囲は、0からInteger.MAX_VALUEまでです。これを最大プール・サイズより大きい値に設定すると無効になります。デフォルトは0です。

NetworkProtocol

String

データ・ソース・ネットワーク・プロトコルを設定します。

ONSConfiguration

String

リモートONSサブスクリプションに使用される構成文字列を設定します。

パスワード

String

接続を取得するためのパスワードを設定します。

PortNumber

int

データベース・ポート番号を設定します。

PropertyCycle

int

プロパティ・サイクル(秒)を設定します。

RoleName

String

データ・ソース・ロール名を設定します。

ServerName

String

データベース・サーバー名を設定します。

SQLForValidateConnection

String

SQLForValidateConnectionプロパティの値(SQL)を設定します。

TimeoutCheckInterval

int

timeoutCheckInterval (秒)を設定します。

TimeToLiveConnectionTimeout

int

接続を使用中のままにできる最大時間(秒)を設定します。

URL

String

データベースへの接続を取得するためにデータ・ソースで使用するURLを設定します。

ユーザー

String

接続を取得するためのユーザー名を設定します。

ValidateConnectionOnBorrow

Boolean

流用した接続を最初に検証するかどうかを設定します。有効な値は、true およびfalseです。

ノート:

通常の文字列リテラルに加え、システム・プロパティと暗号化プロパティがサポートされます。Oracle WebLogic Server管理コンソール・オンライン・ヘルプの次のトピックを参照してください。

jdbc-driver-params URLが設定されている場合、URLプロパティは無視されます。encrypted-passwordが設定されている場合、パスワード・プロパティは無視されます。

属性ConnectionFactoryProperty、ConnectionFactoryProperties、ConnectionPropertyおよびConnectionFactoryPropertiesは、「name1=value1,name2=value2...」という形式の値を受け入れます。

データベース接続のテスト

「データベース接続のテスト」ページでは、プロパティの自由形式の値を入力し、データ・ソース構成をファイナライズする前に、表名またはSQL文を使用してデータベース接続をテストできます。必要に応じて、Properties属性とSystem Properties属性を使用すると、追加の構成情報をテストできます。

ターゲットの選択

新しいUCPデータ・ソースのデプロイ先に、1つ以上のターゲットを選択します。ターゲットを選択していない場合でもデータ・ソースは作成されますが、デプロイされません。そのデータ・ソースは、後でデプロイする必要があります。

WLSTを使用したUCPデータ・ソースの構成

他のデータ・ソース・タイプを作成するのと同じ方法で、WLSTを使用してUCPデータ・ソースを作成できます。ただし、UCPデータ・ソースのほうが属性は少なくなります。

UCPデータ・ソースの構成要素は、次のとおりです。

  • name
  • datasource-type=UCP

  • jdbc-driver-params url

  • jdbc-driver-params property - user

  • jdbc-driver-params password-encrypted

  • jdbc-data-source-params jndi-name

  • jdbc-driver-params other properties

WebLogic Serverデータ・ソース・ディスクリプタからの他の要素は、認識されません。他の要素を指定しても、無視されます。

例8-1に、UCPデータ・ソースを作成するためのサンプルWLSTスクリプトを示します

例8-1 UCPデータ・ソースを作成するためのサンプルWLSTスクリプト

import sys, socket
import os
hostname = socket.gethostname()
connect("weblogic","welcome1","t3://"+hostname+":7001")
edit()
startEdit()
serverName="AdminServer"
serverBean = getMBean('/Servers/'+serverName)
host='%s.us.company.com' %hostname
print 'Creating UCP datasource'
domain = getMBean("/")
startEdit()
resourceName='ucpDS'
print "Creating datasource ds in domain"
systemResource=domain.createJDBCSystemResource(resourceName)
systemResource.setName(resourceName)
jdbcResource=systemResource.getJDBCResource()
jdbcResource.setName(resourceName)
jdbcResource.setDatasourceType('UCP')
driverParams=jdbcResource.getJDBCDriverParams()
driverParams.setDriverName('oracle.ucp.jdbc.PoolDataSourceImpl')
driverParams.setUrl('jdbc:oracle:thin:@dbhost:1521/otrade')
properties = driverParams.getProperties()
properties.createProperty('user', 'dbuser')
properties.createProperty('ConnectionFactoryClassName', 'oracle.jdbc.pool.OracleDataSource')
driverParams.setPassword('MYPASSWD')
jdbcDataSourceParams=jdbcResource.getJDBCDataSourceParams()
jdbcDataSourceParams.addJNDIName(resourceName)
jdbcDataSourceParams.setGlobalTransactionsProtocol('None')
cd('/SystemResources/' + resourceName )
set('Targets',jarray.array([ObjectName('com.bea:Name=' + serverName + ',Type=Server')], ObjectName))
save()
activate()

ノート:

UCPデータ・ソースの基礎としてWebLogic Serverに付属する汎用データ・ソースを作成するためのサンプルWLSTスクリプトも使用できます。
EXAMPLES_HOME\wl_server\examples\src\examples\wlst\online\jdbc_data_source_creation.py

ここでEXAMPLES_HOMEは、WebLogic Serverのコード・サンプルを構成するディレクトリです。『WebLogic Scripting Toolの理解』のWLSTオンライン・サンプル・スクリプトに関する項を参照してください。

UCP MT共有プールのサポート

この機能を使用するには、UCPデータ・ソースがJVMにロードされる前に、oracle.ucp.jdbc.xmlConfigFileシステム・プロパティを使用してUCPのXML構成ファイルのURIを指定する必要があります。

これは、weblogic.Serverを起動するときにコマンド行で設定できます。これでは不都合な場合もあるため、XmlConfigFile接続プロパティを設定することもできます。接続プロパティによる方法を使用する場合は、たとえそれがXMLファイルを使用していなくても、WebLogic Serverで構成されているすべてのUCPデータ・ソースに対して設定する必要があります。そのフォーマットは通常、file:///path/file.xmlのようなものです。

共有プール機能を使用する場合、次のものを除き、データ・ソースのすべての属性が無視されます。
  • 名前 – データ・ソースの名前

  • データ・ソース・タイプ - UCP

  • ドライバのクラス名 - oracle.ucp.jdbc.PoolDataSourceImplまたはoracle.ucp.jdbc.PoolXADataSourceImpl

  • DataSourceFromConfigurationプロパティ – XMLファイル内のデータ・ソース名。

  • XmlConfigFileプロパティ – システム・プロパティとして設定されていない場合は、オプションでXMLファイルのURIを設定

  • JNDI名 - データ・ソース・オブジェクトがマップされているJNDI名。

    例:

    import sys, socket
    import os
    hostname = socket.gethostname()
    connect("weblogic","welcome1","t3://"+hostname+":7001")
    edit()
    startEdit()
    serverName="myserver"
    print 'Creating UCP datasource'
    domain = getMBean("/")
    startEdit()
    resourceName='ds5'
    print "Creating datasource ds in domain"
    systemResource=domain.createJDBCSystemResource(resourceName)
    systemResource.setName(resourceName)
    jdbcResource=systemResource.getJDBCResource()
    jdbcResource.setName(resourceName)
    jdbcResource.setDatasourceType('UCP')
    driverParams=jdbcResource.getJDBCDriverParams()
    driverParams.setDriverName('oracle.ucp.jdbc.PoolDataSourceImpl')
    properties = driverParams.getProperties()
    properties.createProperty('DataSourceFromConfiguration', 'pds1')
    properties.createProperty('XmlConfigFile', 'file:///SharedPoolDemo.xml')
    jdbcDataSourceParams=jdbcResource.getJDBCDataSourceParams()
    jdbcDataSourceParams.addJNDIName(resourceName)
    cd('/SystemResources/' + resourceName )
    set('Targets',jarray.array([ObjectName('com.bea:Name=' + serverName + ',Type=Server')], ObjectName))
    save()
    activate()
    UCPのXMLファイルは次のようになります。
    <?xml version="1.0" encoding="UTF-8"?> 
    <ucp-properties> 
    <connection-pool  
    connection-pool-name="pool1"  
    connection-factory-class-name="oracle.jdbc.pool.OracleDataSource" 
    url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)
    (HOST=dbhost)(PORT=5521))(CONNECT_DATA=
    (SERVICE_NAME=dbhostservice)))"  
    user="system"  
    password="manager"  
    initial-pool-size="4" 
    min-pool-size="2" 
     max-pool-size="10"  
    shared="true"
      >  
    <data-source data-source-name="pds1" 
     user="system" 
     password="manager" 
     service="pdb1_service" 
     description="pdb1 data source"
      />  
    <data-source data-source-name="pds2"   
    user="system"  
     password="manager"   
    service="pdb2_service"  
     description="pdb2 data source"  
    /> 
    </connection-pool> 
    </ucp-properties>

ユニバーサル接続プールJDBCリソースのモニタリング

WebLogic Sever管理コンソール、またはJDBCUCPDataSourceRuntimeMBeanJDBCDataSourceRuntimeMBeanを使用してUCPのJDBCリソースをモニタリングする方法について学習します。

JDBCUCPDataSourceRuntimeMBeanには、データ・ソースの現在の状態を取得するメソッドと、データ・ソースに関する統計を取得するメソッドが用意されています。取得できる統計には、平均のアクティブな接続数、現在のアクティブな接続数、最大のアクティブな接続数などがあります。このMBeanは、JDBCDataSourceRuntimeMBeanを拡張して、JDBCサービスから他のJDBC MBeanのリストとともにそれを返すことができるようにします。

実行時の統計に加え、テストに成功すると、testPool()操作はNULLを返しますが、それ以外の場合はエラー文字列を返します(他のデータ・ソース・タイプと同様)。プールのテストが実行されるのは、検証用に実行するSQL文字列(SELECT 1 from DUALなど)がSQLForValidateConnectionに設定されている場合のみです。操作の残りは、アクションを実行しません。

Oracle WebLogic Server MBeanリファレンスのJDBCUCPDataSourceRuntimeMBeanに関する項を参照してください。

JDBCのモニタリングの詳細は、「WebLogic JDBCリソースのモニタリング」を参照してください。

Oracle Shardingのサポート

シャーディングは、独立したデータベース間でデータが水平にパーティション化されるデータ階層アーキテクチャです。

シャーディングに関するOracleデータベースのドキュメントは、「Oracle Sharding」および「Oracle Shardingの概要」を参照してください。Oracle Shardingは12.2のUCPで使用可能で、WebLogic ServerからネイティブのUCPデータ・ソース機能を介して表に現れます。

JNDI参照を使用してUCPデータ・ソースにアクセスすると、次のJavaコードのようにシャーディングAPIを使用できます。

import javax.naming.Context;
import javax.naming.InitialContext;
import java.sql.Connection;
import oracle.ucp.jdbc.PoolDataSource;

Context cts = new InitialContext();

/// Look up the data source using JNDI
PoolDatasource pds = (PoolDataSource) ctx.lookup("ShardedDB");

 // Create a key corresponding to sharding key columns, to access the correct shard
OracleShardingKey key = pds.createShardingKeyBuilder().subkey(100, JDBCType.NUMERIC).build();

 // Fetch a connection to the shard corresponding to the key
Connection conn = pds.createconnectionBuilder().shardingKey(key).build();

 // Use the above connection for performing shard specific operations

接続プールの初期容量の拡張

WebLogic Server 12.2.1.3以降では、接続プールの接続の初期容量を拡張するために、接続リトライ、初期障害、およびクリティカルなデータ・ソースを使用できます。

接続プール内の接続の初期容量の作成

サーバーが起動するたびに、データ・ソースでは、接続プール内に初期容量分の接続の作成が試行されます。12.2.1.3以前では、接続試行の一部が失敗した場合でも、データ・ソースで初期容量分の接続の作成が試行されていました。ネットワークやデータベースの使用不可が原因で、1つまたは複数の接続の失敗に時間がかかると、この処理に長時間かかることがあります。

WebLogic Server 12.2.1.3以降では、初期容量分の接続の作成時に、次のような変更が可能です。

接続の再試行

初期接続の作成失敗の再試行を制御する2つの接続プロパティがあります。

weblogic.jdbc.startupRetryCount — このプロパティが設定されていて、その値が0より大きい場合、失敗が発生すると、その値に基づいて接続の作成が再試行されます。デフォルト値は0 (再試行なし)です。

weblogic.jdbc.startupRetryDelaySeconds— このプロパティが設定されていて、その値が0より大きく、再試行回数が設定されている場合、再試行から次の再試行まで指定された秒数の間接続作成が遅延されます。デフォルト値は0 (遅延なし)です。

早期失敗

次の接続プロパティは、接続の作成が失敗した後、続行するかどうかを制御します。

weblogic.jdbc.continueMakeResourceAttemptsAfterFailure=true — 起動時の再試行が有効な場合は、このドライバ・プロパティweblogic.jdbc.continueMakeResourceAttemptsAfterFailure=trueは無視され、サーバーの起動時に障害が発生した後、データ・ソースによる接続作成は続行されません。実行中のサーバーにデータ・ソースをデプロイまたは再デプロイすると、作成の試行が続行されます。

クリティカル・データ・ソース

接続プールの初期容量分の接続にデータを移入する際に障害が発生した場合、データ・ソースはデプロイされません(JNDIには含まれないため、アプリケーションはそれを検出できません)が、サーバーは起動を続行し、異常とはマークされません。一部のアプリケーションでは、データ・ソースは重要なリソースであり、データ・ソースがデプロイされていない場合には有効な処理を実行できません。これは、接続プロパティを使用して制御できます。

weblogic.jdbc.critical — この値がtrueに設定されている場合、管理対象サーバーのブートが失敗します。これは構成変更を処理するために使用可能な管理サーバーには適用されません。デフォルト値はfalseで、サーバーはデータ・ソースをデプロイせずにブートを続行します。

例8-2 WLSTのサンプル・コード

次のWLSTサンプル・コードの断片は、データ・ソースの再試行回数と遅延の定義を示しています。
edit()
startEdit()
datasource="dsname"
cd("/JDBCSystemResources/" + datasource + "/JDBCResource/" + datasource + "/JDBCDriverParams/"
+ datasource + "/Properties/" + datasource)
cmo.createProperty("weblogic.jdbc.startupRetryCount", "5")
cmo.createProperty("weblogic.jdbc.startupRetryDelaySeconds", "10")
save()
activate()