0

Websphere 7.0 サーバーで JDBC データソースをセットアップするために使用される Jython スクリプトがあります。そのデータソースにいくつかのプロパティを設定する必要があります。私はこのコードを使用していますvalue'-'

def setCustomProperty(datasource, name, value):
    parms = ['-propertyName', name, '-propertyValue', value]
    AdminTask.setResourceProperty(datasource, parms)

dateSeparatorデータソースのプロパティをダッシュ​​に設定する必要があります。このスクリプトを実行するsetCustomProperty(ds, 'dateSeparator', '-')と、「無効なプロパティ:」という例外が発生します。ダッシュは、別のパラメーター/引数のペアが必要であることを意味すると考えていることがわかりました。

AdminTask にダッシュを受け入れる方法はありますか?

注: 適切なプロパティの ID を取得する方法が見つからないため、AdminConfig で設定できません (複数のデータソースがあります)。

4

3 に答える 3

1

AdminConfigプロパティ値をダッシュ​​に設定できるように使用するソリューションを次に示します-。ソリューションは複数のデータ ソースを考慮し、適切なスコープ (つまり、サーバー。ただし、データ ソースが別のスコープ内に存在する場合はこれを変更できます) を指定して正しいデータ ソースを見つけ、名前でデータ ソースを見つけます。このソリューションでは、既存の "dateSeparator" プロパティが存在する場合はそれを変更し、存在しない場合は作成します。

コードはそれほどエレガントに見えませんが、問題は解決するはずです:

def setDataSourceProperty(cell, node, server, ds, propName, propVal) :
  scopes = AdminConfig.getid("/Cell:%s/Node:%s/Server:%s/" % (cell, node, server)).splitlines()
  datasources = AdminConfig.list("DataSource", scopes[0]).splitlines()
  for datasource in datasources :
    if AdminConfig.showAttribute(datasource, "name") == ds :
      propertySet = AdminConfig.list("J2EEResourcePropertySet", datasource).splitlines()
      customProp = [["name", propName], ["value", propVal]]
      for property in AdminConfig.list("J2EEResourceProperty", propertySet[0]).splitlines() :
        if AdminConfig.showAttribute(property, "name") == propName :
          AdminConfig.modify(property, customProp)
          return
      AdminConfig.create("J2EEResourceProperty", propertySet[0], customProp)

if (__name__ == "__main__"):
  setDataSourceProperty("myCell01", "myNode01", "myServer", "myDataSource", "dateSeparator", "-")
  AdminConfig.save()
于 2011-08-18T18:53:45.913 に答える
0

管理コンソールの設定を参照してください。あなたは今あなたが試みていることをすることができます、そしてあなたは管理コンソールがそれ自身の使用のために作成しているJython同等物を見ることができるはずです。次に、それをコピーします。

于 2011-02-04T17:28:26.300 に答える
-1

配列の代わりに文字列を使用して、ダッシュ記号で始まる値を二重引用符で囲んでパラメーターを渡してみてください

例:

AdminTask.setVariable('-variableName JDK_PARAMS -variableValue "-Xlp -Xscm250M" -variableDescription "-Yes -I -can -now -use -dashes -everywhere :-)" -scope Cell=MyCell')
于 2015-05-16T15:55:15.113 に答える