# 65535バイトの制限に起因するコード生成時のエラーを防ぐ方法

Talend Studioの場合、一部のジョブがコードコンパイルで失敗し、65535バイト制限のエラーが表示されることがあります。この記事では、このエラーの原因を説明し、トラブルシューティングのアイデアと解決策をお伝えします。

たとえばサブジョブのコンポーネント数やスキーマのカラム数が多すぎる場合、Talendジョブのコンパイルが失敗し、以下の例外が発生することがあります。

```
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The code of method tFileInputDelimited_1Process(Map) is exceeding the 65535 bytes limit
```

これは、Talend Studioがコードジェネレーターであり、それぞれのTalendジョブに対してJavaコードを作成することが理由です。サブジョブはそれぞれ、ジョブクラスにあるメソッドです。サブジョブが大きすぎると、最終的に生成されるコードのサイズが65536バイトを超えてしまいます。Javaの仕様によると、この非ネイティブかつ非抽象メソッドのコード量は65536バイトのサイズに制限されているため、サブジョブの生成コードがこの制限を超えることはできません。

このエラーを防ぐため、Talend Studioインストールディレクトリーのconfigurationフォルダーにあるconfig.iniファイルに次のパラメーターを追加してみます。

```
deactivate_extended_component_log=true
```

このオプションを設定すると、ジョブの依存項目もアップデートされます。継続的インテグレーションを使用している場合は、プロジェクト内のPOMをすべて再生成することをお勧めします。これを行うには、[Project Settings] (プロジェクト設定)に移動し、[Build] (ビルド) &gt; Mavenノードを開いて[Force full re-synchronize poms] (POMの全再同期を強制)をクリックします。

上記のパラメーターを追加しても問題が解決しない場合は、回避策として、ジョブを最適化し、サブジョブの最終生成コードのサイズが小さくなるよう、次の方法を試してみてください。

* サブジョブ内のコンポーネント数(特にtLogRowなどのデバッグ用コンポーネント)を最小限にする。
* サブジョブを複数のサブジョブに分割する。

このエラーはまた、Talend StudioでLog4jロガーを無効にすれば防げることもできます。詳細は、[Log4を有効化して設定](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/studio-configure-log4j)をご覧ください。

### このセクション内

* [サブジョブのサイズを小さくするリデザイン例](https://help.qlik.com/talend/ja-JP/code-generation-prevent-error/8.0/redesign-example-of-reducing-size-of-subjob)