スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

tomcatでアプリケーションを動かすときのoverflowとmysqlエラー



オワリカラ - Swing


RockDazeにてライブで見ました。
演奏上手いしパフォーマンスも良かったです。

10/2か10/3あたりに福岡来るので予定があいてたら見に行きたいですね。


java.lang.StackOverflowError



javaのスタック領域が足りないっぽいためそれを増やした。
Eclipseのウィンドウ->設定->tomcat->JVMの設定にて、

-Xss1024k
(スタック領域をデフォルトの512kbから1024kbへ)

-Xmx1024m
(こちらは不要かもしれないが、ヒープ領域も念のためにデフォルトの512mbから1024mbへと増加)

を追加。

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'display_name' at row 1




テーブル作成時にdisplay_nameに入れる長さが、qirにおいて長すぎるため、これの長さを大きく設定してエラーを回避。

具体的には、

テーブルを作成するところの、

-- -------------------------------------------------------------
-- Table structure for sets
-- -------------------------------------------------------------

DROP TABLE IF EXISTS sets;
CREATE TABLE sets
(
set_id INT(11) NOT NULL AUTO_INCREMENT,
display_name VARCHAR(125),
description VARCHAR(255),
set_spec VARCHAR(255) NOT NULL,
is_provider_set BOOLEAN,
is_record_set BOOLEAN,
provider_id INT(11) NOT NULL,

PRIMARY KEY(set_id),

INDEX idx_sets_set_spec(set_spec),
INDEX idx_sets_provider_id(provider_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


のdisplay_name VARCHAR(125)->(255)としたら回復できた。


この2つを今回処理してやたらと時間がかかりました。
経験が足りないのもあるけど、
アプリを動かす段階で出るエラーってエラーの特定が難しいですね。
見直すところが多すぎる。全部構造頭に入ってたらすぐにわかるんだろうけれど。
それは難しい話なんで設計からしっかりやっていくんですよねー。


2つ同時に出ていたけど1つめの対処はもしかしたら要らなかったかも。

sqlでinsertしようとしているけど、2つ目のエラーが出て無限ループに入っちゃって、
スタック領域にメモリが消費されまくってオーバーフロー起こしていただけかも。

comment

 ▼コメントを投稿する

管理者にだけメッセージを送る

つぶやき
プロフィール

GK.Kenta

Author:GK.Kenta
情報系大学院修士2年
来年からは福岡でASP(SaaSを提供)の会社にてSEです
ここではなるべく技術的な事をアウトプットしたいです

drumをば叩いております
live映像はこちらから
http://www.youtube.com/user/kwgt23

FC2カウンター
ブログ内検索
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。