DataWeave システムプロパティ

DataWeave では、いくつかのシステムプロパティがサポートされます。これらのプロパティをアプリケーションの開発およびデプロイメントで使用するには、​「システムプロパティ」​を参照してください。

プロパティ 説明

com.mulesoft.dw.buffered_char_sequence.enabled

内部の ​BufferedCharSequence​ 改善を有効にするか、無効にするかを制御します。このプロパティが ​true​ に設定されると、DataWeave は大きな項目 (1.5M 超) をメモリに読み込みません。DataWeave はこれらの項目をチャンクで読み取ります。この機能はパフォーマンスを抑えてメモリ不足エラーを防止します。

  • 型: Boolean

  • デフォルト: true

com.mulesoft.dw.buffersize

処理された入力および出力を保持するために DataWeave で使用するメモリ内の入力バッファおよび出力バッファのサイズ (バイト単位) を設定します。DataWeave では、このサイズを超えるペイロードは一時ファイル ​dw-buffer-index-${count}.tmp​ および ​dw-buffer-output-${count}.tmp​ に保存されます。​『DataWeave のメモリ管理』​を参照してください。

  • 型: Integer

  • デフォルト: 8192

com.mulesoft.dw.charbuffersize

ライターが使用するバッファのサイズ (バイト) を決定します。

  • 型: Number​ (バイト)

  • デフォルト: 4096

com.mulesoft.dw.coercionexception.verbose

デフォルトでは、型強制に失敗したデータに関する詳細を型強制例外に追加します。このプロパティが ​false​ に設定されている場合、追加のメタデータは表示されません。

  • 型: Boolean

  • デフォルト: true

com.mulesoft.dw.cpulimit.watchdog

true​ に設定すると、スクリプトの実行時間が監視および制限されます。

  • 型: Boolean

  • デフォルト: true

com.mulesoft.dw.date_minus_back_compatibility

このプロパティが ​true​ に設定されている場合、2.3.0 で変更された​『時間の加算と減算』​動作を復元します。

たとえば、次の DataWeave スクリプトについて考えてみます。

%dw 2.0
output application/dw
---
|2019-10-01| - |2018-09-23|
dataweave
  • DataWeave 2.3.0 では、この式は PT8952H を返します。

  • DataWeave 2.2.0 では、この式は P1Y8D を返します。

  • Type: Boolean

  • Default: false

Available for language levels: 2.3, 2.4, 2.5

com.mulesoft.dw.decode_binaries_with_writer_encoding

true​ に設定すると、JsonWriter エンコードを使用して JSON のバイナリ値が書き込まれます。それ以外の場合、プロパティは値スキーマで定義されたエンコードまたはデフォルトのエンコードを使用します。

  • 型: Boolean

  • デフォルト: false

com.mulesoft.dw.defaultOperator.disableExceptionHandling

true​ に設定すると、DataWeave はランタイム例外をキャッチする ​default​ 演算子を無効にします。 default​ 演算子を有効にすると、ランタイム例外が発生したときに​デフォルト値​は返されません。 false​ に設定すると、​default​ 演算子はランタイム例外をキャッチし、​default value​ を返します。

  • 型: Boolean

  • デフォルト: true

使用可能な言語レベル: 2.5、2.6、2.7、2.8、2.9

com.mulesoft.dw.directbuffer.disable

DataWeave でオフヒープメモリ (デフォルト) またはヒープメモリのどちらを使用するかを制御します。DataWeave では、内部バッファにはオフヒープメモリが使用されます。このため、少量のメモリのみを搭載するシステムでは、問題が発生する可能性があります。​『DataWeave のメモリ管理』​を参照してください。

  • 型: Boolean

  • デフォルト: false

com.mulesoft.dw.dump_files

実験的機能​: このプロパティが ​true​ に設定されている場合、入力コンテキストと失敗したスクリプトをフォルダーにダンプします。この動作により、失敗したスクリプトとスクリプトを失敗させたデータを追跡できます。これは、受け取った入力データが有効であることを確認するのに特に役立ちます。多くの場合、上流コンポーネントで無効なデータが生成されると、間違ったスクリプトは失敗します。

com.mulesoft.dw.dump_folder

実験的機能​: com.mulesoft.dw.dump_files​ が ​true​ に設定されている場合にファイルをダンプするパスを指定します。

com.mulesoft.dw.dumper_fill_stacktrace

実験的機能​: com.mulesoft.dw.dump_files​ が ​true​ に設定されている場合、dumper 例外の StackTrace を追加します。

com.mulesoft.dw.error_value_length

ユーザーに表示する例外メッセージの最大長を設定します。メッセージはこの最大長で切り捨てられます。この設定は、長い例外メッセージを回避するのに役立ちます。

  • 型: Number

  • デフォルト: 80

com.mulesoft.dw.indexsize

インデックス付けされたリーダーで使用するメモリ内のページの最大サイズ (バイト単位) を設定します。

  • 型: Number (バイト)

  • デフォルト: 1572864

com.mulesoft.dw.java.disable_set_accessible

true​ に設定すると、JavaModuleLoader では、リフレクションを介して使用する項目またはメソッドのアクセス可能なフラグは変更されません。デフォルト値は、現在使用されている JDK バージョンと言語レベルを評価します。使用されている JDK が 17 以降で、言語バージョンが 2.6 以降の場合、値は ​true​ になります。

  • 型: Boolean

  • デフォルト:

    • false​ になる言語レベル: 2.5

    • true​ になる言語レベル: 2.6、2.7、2.8、2.9

使用可能な言語レベル: 2.5、2.6、2.7、2.8、2.9

com.mulesoft.dw.java.stacktrace

Java スタックトレースの深さを指定します。

  • 型: Number

  • デフォルト: 6

com.mulesoft.dw.javaSqlDateToDate

設定すると、​java.sql.Date​ は DataWeave の ​Date​ 型にマップされます。​false​ の場合、​DateTime​ にマップされます。

  • 型: Boolean

  • デフォルト:

    • false​ になる言語レベル: 2.4

    • true​ になる言語レベル: 2.5

使用可能な言語レベル: 2.4、2.5

com.mulesoft.dw.max_memory_allocation

オフヒープメモリプールの各スロットのサイズ (バイト単位) を設定します。DataWeave では、このサイズを超えるペイロードは一時ファイル ​dw-buffer-input-${count}.tmp​ および ​dw-buffer-output-${count}.tmp​ に保存されます。

  • 型: Number (バイト)

  • デフォルト: 1572864

com.mulesoft.dw.memory_pool_size

メモリプールのスロットの数を設定します。DataWeave バッファでは、定義されたサイズ (​com.mulesoft.dw.memory_pool_size​ * ​com.mulesoft.dw.max_memory_allocation​) までプールのオフヒープメモリが使用されます。残りはヒープメモリを使用して割り当てられます。​『DataWeave のメモリ管理』​を参照してください。

  • 型: Number

  • デフォルト: 60

com.mulesoft.dw.multipart.defaultContentType

Content-Type​ が指定されていない場合に ​multipart/*​ 形式の部分で使用するデフォルトのコンテンツタイプを設定します。マルチパートリーダープロパティ ​「defaultContentType」​ も参照してください。​2021 年 8 月リリースの Mule 4.3.0-20210719 の DataWeave 2.3 (2.3.0-20210720) で導入されました。

  • 型: String

  • デフォルト: application/octet-stream

com.mulesoft.dw.scheduler.size

DataWeave スケジューラースレッドプールのサイズを指定します。

  • 型: Number

  • デフォルト: 100

com.mulesoft.dw.stacksize

スタックの最大サイズを設定します。関数の再帰が深すぎると、Stack Overflow などのエラーがスローされます。最大サイズ制限は 256 です。

  • 型: Number

  • デフォルト: 256

com.mulesoft.dw.stripTrailingZeroes

false​ に設定すると、DataWeave は 2.4.0 に存在する一部の形式 (DataWeave、JSON、YAML など) の末尾の 0 を保持する動作を復元します。 2.5.0 以降、末尾の 0 はデフォルトで削除されます。 .DataWeave スクリプト:

%dw 2.4
output application/json
---
1.00
xml
  • com.mulesoft.dw.stripTrailingZeroes​ が ​false​ に設定されている場合、スクリプトは次の出力を返します。 ​1.00

  • com.mulesoft.dw.stripTrailingZeroes​ が ​true​ に設定されている場合、スクリプトは次の出力を返します。 ​1

  • 型: Boolean

  • デフォルト:

    • false​ になる言語レベル:

    • true​ になる言語レベル: 2.5、2.6、2.7、2.8、2.9

使用可能な言語レベル: 2.5、2.6、2.7、2.8、2.9

com.mulesoft.dw.telemetry.bufferSize

テレメトリーイベントバッファのサイズ (バイト) を決定します。

  • 型: Number (バイト)

  • デフォルト: 1048576

com.mulesoft.dw.telemetry.enabled

Dataweave テレメトリーサービスを有効にします。

  • 型: Boolean

  • デフォルト: false

com.mulesoft.dw.telemetry.memory

true​ に設定した場合、テレメトリーサービスはメモリ使用量統計を収集します。

  • 型: Boolean

  • デフォルト: false

com.mulesoft.dw.telemetry.sync

true​ に設定すると、テレメトリーイベントが同期的にパブリッシュされます。

  • 型: Boolean

  • デフォルト: false

com.mulesoft.dw.track.cursor.close

true​ に設定すると、{CursorProvider#close()} メソッドのコール元であるスタックトレースを追跡します。このプロパティは、すでに閉じられているカーソルで {CursorProvider#openCursor()} がコールされた場合など、トラブルシューティング目的で使用します。

  • 型: Boolean

  • デフォルト: false

com.mulesoft.dw.valueSelector.selectsAlwaysFirst

true​ に設定すると、(要素が複数回出現する場合でも) 最初に出現する要素を返します。この動作を有効にすると、パフォーマンスが低下します。

次の例は、このプロパティにより制御される動作を示しています。(DataWeave スクリプトが XML 入力で動作することを前提とします)。

XML 入力:
<root>
  <users>
     <user>
       <lname>chibana</lname>
       <name>Shoki</name>
     </user>
     <user>
       <name>Shoki</name>
       <name>Tomo</name>
     </user>
  </users>
</root>
xml
DataWeave スクリプト:
%dw 2.0
output application/json
---
{
    shokis: payload.root.users.*user map $.name
}
xml
  • com.mulesoft.dw.valueSelector.selectsAlwaysFirst​ が ​true​ に設定されている場合、スクリプトは次の出力を返します。

    {
      "shokis": [
        "Shoki",
        "Shoki"
      ]
    }
    json
  • com.mulesoft.dw.valueSelector.selectsAlwaysFirst​ が ​false​ に設定されている場合、スクリプトは次の出力を返します。

    {
      "shokis": [
        "Shoki",
        "Tomo"
      ]
    }
    json
  • 型: Boolean

  • デフォルト: false

使用可能な言語レベル: 2.3、2.4、2.5

com.mulesoft.dw.workingdirectory.base

一時ファイルが書き込まれる基本ディレクトリを指定します。

  • 型: String

  • デフォルト: java.io.tmpdir (システムプロパティ値)

com.mulesoft.dw.workingdirectory.delete_sync

このプロパティが ​true​ に設定されている場合、ファイルの削除が同期的に行われます。

  • 型: Boolean

  • デフォルト: false

com.mulesoft.dw.workingdirectory.max_output_buffer_size

書き込まれるファイルの最大サイズ (バイト) を指定します。

  • 型: Number (バイト)

  • デフォルト: -1

com.mulesoft.dw.workingdirectory.tracking

このプロパティが ​true​ に設定されている場合、各スクリプトは独自のディレクトリに一時ファイルを生成します。

  • 型: Boolean

  • デフォルト: false

com.mulesoft.dw.xml.supportDTD

DTD 処理を有効にするか無効にするかを制御します。このプロパティが ​false​ に設定されている場合、内部と外部の両方のサブセットの処理がスキップされます。

  • 型: Boolean

  • デフォルト: false

com.mulesoft.dw.xml_reader.honourMixedContentStructure

true​ に設定すると、DataWeave ではテキストを混在コンテンツと一緒に 1 つのテキスト項目にグループ化するのでなく、混在コンテンツ構造を保持します。

  • 型: Boolean

  • デフォルト:

    • false​ になる言語レベル: 2.4

    • true​ になる言語レベル: 2.5

使用可能な言語レベル: 2.4、2.5

com.mulesoft.dw.xml_writer.declareXmlNamespace

false​ に設定すると、DataWeave では ​xml​ の暗黙的な名前空間は宣言されません。

  • 型: Boolean

  • デフォルト:

    • true​ になる言語レベル: 2.4、2.5

    • false​ になる言語レベル: 2.6

使用可能な言語レベル: 2.4、2.5、2.6

mule.dw.java_module_loader_deterministic_functions_ordering

true​ に設定すると、JavaModuleLoader は Java クラスのメソッドを確定的順序で読み込みます。DataWeave は、メソッド名、パラメーター数、そして最後にパラメーターの型名を考慮します。

  • 型: Boolean

  • デフォルト: true

使用可能な言語レベル: 2.5、2.6

mule.dw.remove_shadowed_implicit_inputs

同じ名前の変数がルートレベルで宣言され、このプロパティが ​true​ に設定されている場合、DataWeave は暗黙的な入力を削除します。

  • 型: Boolean

  • デフォルト: true