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




JBoss AS 4.0.5.GA とか、
Hibernate Search 3.0.0.GA とか

プロダクト名の後ろにGAってつくものがありますね。
正式公開されたバージョンって事はすぐにわかるのですが、何の略だろうとちょっとググってみる。

define:gaでググってみると。。

どうやら
GA = General Availability ってもののようだ。

エキサイト翻訳だと
「一般的な入手可能性」と出ます。

あーすっきり。


スポンサーサイト

Webアプリケーションでレポートをグラフ表示したいと考えていのだが、Javaだとちょっとめんどうそうなのでadobe Flexに目をつけた。

Flexは通常はAction Scriptを使ってロジックを記述するのだが、s2flexを使ったり直接Javaのクラスを呼び出して使ったり出来るようだ。

現在参考にしている書籍としては、「Adobe Flex プロフェッショナルガイド」と「Flexでさわって覚えるリッチクライアント」という2冊だ。

両方とも一通り目を通したのだが、プロフェッショナルガイドは情報が新しく、非常に読みやすい。
これからFlexを始める人には必ず持っていたほうがいい!と自信をもって勧められる一冊だと思う。

若干誤植が多いところは玉に傷だが、全く知らない初心者からでも理解しやすい書き方が魅力的。


Flexでさわっておぼえるリッチクライアントは、本自体は若干古いのだが、Javaとの連携や、SeasarのS2Flexとの連携方法などが書いてあり、こちらもWebのアプリケーションを本格的に作りたいのであれば必携と言えるだろう。

内容も読みやすく、AdobeFlex2 プロフェッショナルガイドと重複しない部分が多いので両方おすすめです。

近々Flexを使ったWebアプリを作成する記事を連載したいと思っていますが、こんなのを作ってほしい!という希望があれば是非、読者の皆さんの声を聞かせてください。

(スキルが足りなくて期待にこたえられない可能性も・・・)


私が参考にしている書籍







以前こちらの記事で書いたように、HibernateのConfigファイルに直接DBへの接続設定を書くと8時間毎にコネクションが切断されるため、今回はTomcatのコネクションプールをHibernateから利用するように変更した。

c3p0を使う方法もあるが、WEBアプリケーションならTomcatのコネクションプールを使用したほうが便利かと・・・。


さて、設定方法だが、

※CATALINA_HOMEはTomcatをインストールしたディレクトリを指します。

今回のDBはMySQLで、APサーバのローカルホストにインストールされています。
構成が違う場合は読み替えて設定してください。

/CATALINA_HOME/conf/server.xml の
<GlobalNamingResources>ディレクティブ内に以下のように記述します。
<GlobalNamingResources>
<Environment
name="simpleValue"
type="java.lang.Integer"
value="30"/>
<Resource
name="jdbc/hogeDB"
type="javax.sql.DataSource"
maxActive="4"
maxIdle="2"
username="hogehoge"
maxWait="5000"
driverClassName="com.mysql.jdbc.Driver"
password="mysqlpass"
url="jdbc:mysql://localhost:3306/MYDATABASE?autoReconnect=true"/>
<Resource
auth="Container"
description="User database that can be updated and saved"
name="UserDatabase"
type="org.apache.catalina.UserDatabase"
pathname="conf/tomcat-users.xml"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/>
</GlobalNamingResources>


次にアプリケーション内のweb.xmlに以下を追記します。
※/CATALINA_HOME/webapps/hogehoge/WEB-INF/の下です。
※hogehogeは各自のアプリケーション名で読み替えてください。
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/hogeDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

次にアプリケーション内のcontent.xmlに以下を追記します。
※/CATALINA_HOME/webapps/hogehoge/META-INF/の下です。
※hogehogeは各自のアプリケーション名で読み替えてください。
<Context path="/hogehoge">
<ResourceLink global="jdbc/hogeDB" name="jdbc/hogeDB" type="javax.sql.DataSource"/>
</Context>

最後にwebapps下のhibernate.xml.confに以下を記述する
<!-- Database connection settings -->
<property name="connection.datasource">java:comp/env/jdbc/hogehogeDB</property>

<!-- JDBC connection pool -->
<property name="connection.pool_size">1</property>

<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>

さてここまで設定したら動くはず。。。

# /etc/init.d/tomcat restart
で再起動しようとするが、エラーで起動しない。。。


ググってみると、他にもう1点設定する場所があるようで、

/CATALINA_HOME/conf/Catalina/localhost/hogehoge.xml 内に以下を記述する必要がある。
<Context path="/hogehoge">
<ResourceLink global="jdbc/hogehogeDB" name="jdbc/hogehogeDB" type="javax.sql.DataSource"/>
</Context>

これで再起動したらアプリケーションがエラー無く起動した。


おつかれさまです。

関連記事
hibernateのセッションが切れてアプリが落ちる
could not resolve property
hibernate のキャッシュ動作に関して
SQLGrammarException
hibernate のロールバック
Hibernate イン アクション





MySQLのテーブルやデータベースの数や容量などに関しての制限のメモ。

MySQL 5.1 テーブルの最大サイズ
MySQL 4.1 テーブルの最大サイズ

・ストレージエンジン毎に違う。
・行の制限などはないが、ファイルの容量の制限を受ける。

MyISAMは1テーブル1ファイルになるのでOSのファイル容量の制限を受け、MyISAM自体のデフォルトの制限は4GB

InnoDB の場合は
・1つのテーブルに作成できるカラムは1000個まで。
・InnoDBのデフォルトデータベースページサイズは16KB。
・テーブル最大サイズは40億データベースページ。


・MySQLを利用して60,000テーブル、約 5,000,000,000レコードを処理しているユーザーもいるようである。
・各テーブル最大32個のインデックスを使用できる。
・インデックスの最大幅は500バイト。
(コンパイル時に変更可能)

関連記事
MySQLのクエリログを吐かせる方法
MySQLのエラー対処
mysqlbinlogコマンドのオプション
mysql autocommitの仕方
mysqlのデフォルトのストレージエンジンの変更方法
SQL Server のデータベースをvisioで自動でER図にする方法
mod_log_sqlのインストール




mysqldumpコマンドの使い方

ダンプする際
・mysqldump DB名 > ファイル名.sql (拡張子は特に必要ない)

ダンプしたファイルを戻す際
・mysql DB名 < ファイル名.sql

戻す前に「CREATE DATABASE DB名;」にてDBを作成しておく必要がある。


関連記事
mysqldumpでwhen using LOCK TABLESというエラーが出る
MySQLのクエリログを吐かせる方法の追記
MySQLのクエリログを吐かせる方法



mysqldumpコマンドでMySQLのダンプをしようとしていた際に、"when using LOCK TABLES"というエラーが発生し、ダンプが取れない。

MySQLはダンプする前にテーブルにLockをかけるらしいのだが、そのLockをかけることができないようだ。

そこで、ダンプ時に誰も使っていない事が確認できたので(INSERTすることがない)、「--skip-lock-tables」というオプションを使ってダンプを行ったところ無事に完了した。

サービス公開前だったのでよかったが、公開後はこうは行かないので他の対策も考えなくては。。。





JSF(MyFaces)ではhtml上でJavaScriptを使ってテーブルをソートする方法があるので、どこかに落ちてないかな~と探していたら発見。

簡単なJavaScriptを使ったSort方法。

こちらのサイトからJavaScriptをダウンロードし(ZIP package, including the script in normal and US version, examples and sort images (8kb)というファイルがいいでしょう。)、htmlファイルにjsファイルを読み込ませるように記述します。

<script type="text/javascript" src="sortable.js"></script>

tableにclassを記述し

<table class="sortable" id="foo">

ソートしたくない列がある場合には以下のように記述

<th class="unsortable">


sortable.js内でソートボタンの画像を設定できる。

以下のサイトが詳しい。
テーブルをソートできるようにするjsライブラリ-table sorting[to-R]テーブルをソートできるようにするjsライブラリ-table sorting[to-R]【e】






以前「MySQLのクエリログを吐かせる方法」というエントリーを書きましたが、その方法だけではLogを吐き出さないようでした。

信じて設定した方、すみません。

以下追記します。

以前のエントリのほかに以下の設定が必要になります。

MySQLの起動スクリプトの
/usr/bin/mysqld_safe
のオプションに

--log」を追加する。
rpmの起動スクリプトなら


$bindir/mysqld_safe --log --datadir=$datadir --pid-file=$pid_file >/dev/null 2>&1 &

といった感じでしょうか。

記述した後にMySQLを再起動すればok




[Think IT] 第3回:Adobe AIRで付箋風クライアントを作ろう (1/3)[Think IT] 第3回:Adobe AIRで付箋風クライアントを作ろう (1/3)【e】

Javaを覚えたら次はRubyだなーと思う今日この頃。

Ruby on Rails と adobe AIR で付箋アプリを作成しよう!
というエントリを発見。

今度時間があるときにちゃちゃっとやってみたい。




RECENT ENTRYS

RECENT COMMENTS

RECENT TRACKBACKS

サイト内検索

カスタム検索

カテゴリー

月別アーカイブ

このブログについて

ネットワーク構築や、サーバ構築、Javaプログラムを生業としていく中で気付いたことをブログに綴って行きます。

Sponsored Link

カウンター

リンク

RSSフィード

全記事リンク

なかのひと


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