2016-04-17

DBCP2ではまった・・・

DBCP2ではまった。

まさか、設定ファイルの項目名が変更になっているとは思わなかったので、
JNDIに渡すクラス名だけ変更し、dbcpの頃の設定ファイルはそのままで使った所、接続できない・・・・・。

何でエラーなんだ????

ログを見ると、maxActiveとか、ありえねぇーから・・・ みたいな事が書いてある。
DBCP2のサイトには注意書きとは言えないサイズで、ちょこっとだけ触れている。

Users should also be aware that some configuration options (e.g. maxActive to maxTotal) have been renamed to align them with the new names used by Commons Pool 2.

 こういうのは、赤とかで太字表示して欲しいんだよね・・・。もう。

こういうのではまってるのは、自分くらいか?

2016-04-06

DBCP2とpostgresとドライバーのバージョン

いつの間にかDBCPは、DBCP2へとバージョンが上がっていた。
そして、各バージョンがサポートするものが微妙に異なるという、わかりにくい状態になっている。

Sunが倒産し、JavaがOracleへドナドナされてからというもの、Javaがわかりにくく進化してきているように思える。

自分の中では、以前はすっきりした言語のイメージがあったJavaが、Java5(Tiger)から導入されたアノテーションの進化と共に、Perlのようなわけがわからない言語に育っている気がしてならない。

関数宣言の上につく、@の呪文のようなアノテーションがとてもわかりにくい・・・・。
おかげで、ポインタがややこしくて嫌いだったC++の方が、今では理解しやすく使いやすい言語になってしまい、最近ではもっぱらC++ばかり書くようになった。


久々にJDBCを使ったJAASのLoginModuleを作る事になったので、いつものパターンで作り、postgresのバージョンと同じjarを指定して配布し、サーバー起動。


・・・・・・ 何だ!、このエラーの嵐は!  しかもクライアントアプリは接続できないって終了してるし。
コンパイル通ったし、前に同じコードで作ったやつも動いてるから、ありえないから・・・マジで・・・・

困った、何が悪いのかわからんっ!

という事で、困った時は足元からの格言通りに、サーバーアプリケーションのlibフォルダを除いてみると定番のDBCPのjarの名前に違和感のある2の文字が・・・

DBCPのサイトを除いてみるとDBCP2とある。なになに・・・・

 DBCP now comes in three different versions to support different versions of JDBC.
Here is how it works:

    DBCP 2 compiles and runs under Java 7 only (JDBC 4.1)
    DBCP 1.4 compiles and runs under Java 6 only (JDBC 4)
    DBCP 1.3 compiles and runs under Java 1.4-5 only (JDBC 3)

DBCP 2 binaries should be used by applications running under Java 7.

うーーむ・・・・。いつの間にかDBCPは、新しいバージョンが主流になってて、しかもバージョン毎に、JDBCだけでなくJDKのバージョンまで異なった対応になってるのか・・・・知らなかった。

しかも、 DBCP1.4って今まで使ってきた奴は、Java6限定で、JDBCもjdbc4だけしか使えネーんじゃんか・・・!

ええーーっ、jettyとかで、DBCP1.4で、jdk7とJDBC3のドライバーで動かしちゃってるんですけど・・・・(-_-;)

昨年後半は、セキュリティー脆弱性でさんざんJavaが叩かれた記事を目の当たりにしてきたので、さすがにjdkは1.8を使う事にしたのだが、利用する既存DBがPostgres9.1といういぶし銀バージョンの為、ドライバーはずっと[9.1 Build 903] を使ってきた。

DBCP2先輩曰く、

所でオマエ、オレ使うんなら、jdk1.7とjdbc4.1限定な!、それ以外認めないから・・・・・

ガーーン。先輩、そりゃないっすよ・・・・。

jdk==>java8を使って、-version:"1.7.0_80" でもやって使うしかない。

しかし、JDBCはどうにもならんぞ・・・・・困った。と思いながらpostgresのjdbcサイトを覗くと、

This is the current version of the driver. Unless you have unusual requirements (running old applications or JVMs), this is the driver you should be using. It supports Postgresql 7.2 or newer and requires a 1.6 or newer JVM. 

何ですと!

古いJDKバージョンにアプリケーションが縛られるような状態でもない限り、いっちゃん新しいバージョン使えよな。postgres7.2より新しいのは全部サポートしてっから・・・・

だと・・・・?。  ええーーーーっ、 そういう事?。最新バージョンは下位互換性が保持されてるって、全くしらなかった。じゃーー、

JDBC41 Postgresql Driver, Version 9.4-1208

ってのを使えばいいのか・・・・。というわけで、

postgresql-9.4.1208.jre7.jar をダウンロードしてセットし、

postgresql-9.1-903.jdbc3.jar を削除してから、サーバー起動、クライアント認証実施・・・。

さらーーーっと認証終了ですわ。

2015-08-21

WDのHDD Green

ついに長らくバックアップ用に使っていたHDDではサイズが不足してきてしまった。
このHDDは、Windows2000の終了くらいの時期にシステムを入れてメインとして使っていたもので、十分働いてくれた。
保有しているHDDは、通電していないものも含め殆どがHGSTのもので、気まぐれに買った1Tのものと、録画用としてIOデータのパッケージで購入したUSB-HDDの中のものが唯一、WDのGreenとかいうものになる。

いつもならすんなりHGSTを購入するのだが、HGST自体が日立がWDに売り払ってしまった事で、そうそう選択は簡単ではなくなった。選択は

Seagate:過去、一度だけバラクーダを使った事があるが、ファームウエアでやらかした事から敬遠。
東芝:試してみたい気もするが・・・・、どうなんだろ?  HTSTのOEMならば安心なんだろうが・・・サイズが・・・・。
HGST:サーバー用途なのだろうか、価格が値上がった。それに2個パッケージまでは必要ないし・・・・。

WD:なんかGreenがやたら安い。省電力なのでバックアップには最適らしい。過去には低速病とかあって該当のHDD使ってたけど、Linuxだと問題なかったから、・・・・これにすっか!。

ということで、HGSTのHDDの代替として、久しぶりに3TのHDDを購入した。(1万円くらい) WD Green (WD30EZRX-1TBP)


このディスクは1Tのプラッタ三枚という大変好ましい構成なのですが、かなり問題があるものもついてきます。
WDが、省電力すげぇダロ。ワイ頑張った!とご自慢の、IntelliPark というのが、その原因になる。

簡単に言うと、ディスクアクセスが8分間なければ読み書きするヘッドを退避させる事で省電力を実現する仕組みなのだが、このヘッドの退避というが曲者で、PC作業中にHDDへの書き込みや読込をしないままでのボーっとした作業をする度に、ヘッドの退避・稼動が繰り返されてしまう。
HDDの構造上、ヘッドの退避を行っても稼動が保証される回数の上限が決められており、これを超えるとご動作を起こしかねない状況という事になるので、大変問題になる。
気の利いた会社なら、ヘッドの退避処理を行わせないようにするツールなんかがあるのだが、WDは公式にそれを配っていない。

PC音痴の方向けにもっと砕いて説明すると、省エネさせる事に必死なあまり、本来のディスクの寿命を縮めるような仕組みが搭載されているHDDという事になる。(つまり、悪く言うと、おためごかし・・・・・)

個人的には、「自分はHDDはわからん!、素人だっ!」 という向きは、少し暗い高くてもHGSTのHDDを選んでおけば間違いないと思うが

以下は、メインで使っているHGSTのHDDと、今回導入したHD Greenのデータ比較になる。

   9 Power_On_Hours                   累積通電時間
192 Power-Off_Retract_Count     電源投入回数
193 Load_Cycle_Count                ヘッド退避回数

【メインで使っているHGSTのHDD】
=== START OF INFORMATION SECTION ===
Device Model:     HGST HDN724030ALE640

    9 Power_On_Hours          0x0012   099   099   000    Old_age   Always       -       10007
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       141
193 Load_Cycle_Count        0x0012   100   100   000    Old_age   Always       -       141


【WDの Green  WD30EZRX-1TBP】
=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar Green (AF, SATA 6Gb/s)

    9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       52
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       1
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       46

HGSTの方は、10007時間、つまり 416日の通電中に、電源オフ回数が141回で、ヘッド退避回数も141回になる。
WDの方は、52時間の通電中に、電源オフ回数が1回で、ヘッド退避回数は、46回になる。

いいですか!!、電源オフ1回なので、(46-1)=45回も、おためごかしな省エネ退避してくれてます。

WDがGreenに保証している Load Cycle Countの上限は、300,000 なので、エコ意識高い系のユーザーが、省エネモード全開で、HDDの回転を止める的な設定をOSで行っていた場合、アット言う間に、Load Cycle Countがグングン増えます。
そして、 上限の300,000を超えた時点でHDDがおかしくなってメーカー保証を願い出ても、もしかするとこの上限オーバーを理由に断られるかもしれません。
まあ、たかだか1万円の製品のことなので、それはしょうがないとしても、そこに保存されているデータの価値は、そんなものでは測れないプライスレスになっている可能性が高い事から、故障という問題は深刻になります。

ちょっと、いやらしい計算をしてみると・・・・

1日のPCの利用を8時間とすると、480分の利用になる。
8分間毎にヘッド退避が起きた場合、毎日61回の Load Cycle Count が起きることになる。
これを1年続けると22265回、3年では66795回になる。

メーカー保証の300,000までは余裕があるので、この数値以内の使い方をする場合は、ヘッド退避での故障は起こらない事になるのだが、もし、メーカー非推奨のサーバー用途として24時間稼動した場合は、5年目で上限を超える事になるので注意が必要だ・・・。

では、 Load_Cycle_Count の上限を超えなければ安心なのか? というと、 どうもそうではないらしい報告が上がっていた。
この方の場合、僅か5ヶ月で故障したようだ・・・。
詳しい人に聞くと、クーラーでも何でも電気製品はつけっぱなしの方が良いという意見が多いので、こまめに退避させるような事自体が、やはりムリがあるという事なのだろう。

今回の用途では、バックアップ専用なので、ヘッドの1日の稼働時間は、せいぜい数十分程度しかないが、2年間の稼動に耐えられるのだろうか、実験になるだろう。

しっかし、ThinkpadもIBMからLenovoへ移ったとたん、劣化したマルウエア端末と化したので、HGSTもWDへの売却で、クオリティーの劣化は避けられないだろうな・・・・・。

本当だったら、TV録画に初めてHDDをつけたのはHITACHIのWOOだったんだから、今頃はTV録画用のHDDは、HGSTが定番になっていなければならないハズなのに、そうはなっていないのは黒木瞳をCMに使ったせいなのかっ!?

今後のHDD・・・どうしよう・・・。東芝頑張ってくれないかなーーーー。役員が粉飾決算指示出してるような会社じゃダメか・・。


【IntelliPark対策 として idle3-tools】

このIntelliParkを無効化してくれるツールがあるのだが、Linuxでしか動作しない。

$ mkdir hddtool && cd hddtool
$ wget  idle3-tools-0.9.1.tgz
$ tar zxvf idle3-tools-0.9.1.tgz
$ cd idle3-tools-0.9.1
$ make
$ sudo ./idle3ctl -g /dev/sda   これでIntelliParkの設定状態を表示できる
Idle3 timer set to 80 (0x50)    この表示だと、8分で起動にセットされている
$ sudo ./idle3ctl -d /dev/sda   IntelliParkを無効に 
※ このあと、必ずPCをシャットダウンしてHDDへの電源供給を停止すること!!
 
再起動後には
 
$ sudo ./idle3ctl -g /dev/sda

Idle3 timer disabled     無効になっている
 
とりあえず、これで運用してみよう。この方のケースだと、問題なく動いているようだ。

2015-07-18

Nexus7を有線NICで使う

ここのところ結構な頻度で、Googleが Lollipopo の TVCMを流している。
ここに出てくる、おかっぱ & On The 眉毛 にカットした女の子が画面をタップするところの、

可愛いくてちょっとムカつく、なんとも言えない感じにすっかりハマってしまった・・・・。

CMが放送されるよりも前に、既にNexus7にはAndroid 5 が降ってきていた。
あちこちの書き込みを見ると、特定チップのNICドライバーが追加になったようなので試してみた。

対象チップ: ASIX AX88772 USB 2.0 Ethernet
開発元    : ASIX Elec. Corp.

テストできるUSB NICは、バッファローの、LUA3-U2-ATXが該当しそうだ。

早速、WiFiの接続を切ってから、Nexus7のmini USB b端子にホストケーブルをつなぎ、
そこのA端子に、LUA3-U2-ATXをつないでみた。

接続と同時に、LUA3-U2-ATXのLINKのLEDが点滅し、何の設定も行わないまま、ネットに接続できた。
・・・・というか、有線LANの設定を行うアプリケーションが見当たらないので、これで接続できないとダメだろ・・・ww

LUA3-U2-ATXは、10/100BASEでの接続になるので速度は遅いし、USBとしての電源もNexusから喰らうので、
その点はマイナスだ。
しかし、本体が小さく軽いので、緊急事態用としては持っていて損はない。(備えあれば憂いなし)。

安かろう、悪かろう、バッファロー  に大賛成な自分としては、できればバッファローは避けたい・・・。
そこで、AX88772搭載の他社の競合製品を調べたところ、 

USB2.0 LAN-TXU2C

があった。これは、リンク用のLEDがないので、リンクしたかを確認することができないが、それさえ我慢できれば、
後は同じようなものだろう・・・。しかも、ちょっとだけだが、こちらのほうが筐体のサイズが小さい。

2014-03-13

BeagleBone Blackの電源の優先度

前からLinuxが動作する小型端末を使ってみたいと思い立ち、いろいろ調べていたのだが、
皆が使っている Raspberry Pi  と、ちょっとマイナーなBeagleBone Black という2つの候補に辿り着いた。
CPUの能力が高いのと基板とロゴのデザインが好みだったので、BeagleBone Blackに絞り、入手に踏み切った。


昨年、顧客に情報を提供しないまま古いリビジョンのものを販売していたという事で、Amazonで販売していた正規代理店がさんざんブーイングを受けていたらしい事や、BeagleBoneBlackの生産が追い付いていない事などから、どこを探しても在庫切れになっている・・・・・。

そんな折、「アキバの秋月の店頭に売っていた」と教えて頂き電話で問い合わせた所、2個だけ在庫があるという・・。
ついにBeagleBone Blackを入手してしまった。しかも、リビジョンは"B"だ。


Revision B (Production Version)

This version moves to the AM3358BZCZ100 processor as we are no longer able to get the limited production version of the AM3359AZCZ100.
という事で、リビジョンの記号は、プロセッサのAM3358BZCZ100から来ているのだろうか・・・・。

まあ、細かいことはどうでもいいか。

BeagleBone Black には、電源の供給方法が2通りある。
一つは、2.1mmのジャックに接続するDC5V電源で、もうひとつがminiUSBポート経由の電源だ。
製品の同封物にはDC5V用のアダプタが見当たらないので、miniUSBが唯一の電源供給になる。
当然、殆どの人はDC5V用のアダプタを購入するだろうから、2.1mmジャック経由が電源という事になるだろう。

ここで、電子工作素人の自分は、素朴な疑問を持った。

2.1mmのDC5Vに接続し、さらにminiUSBに接続した場合、どちらの電源経路が選択されるのだろう・・・・?

こういう時はマニュアルを見るに限る。BBB_SRM.pdfの、P44 【6.1.4 Power Selection】によると、

The selection of either the 5VDC or the USB as the power source is handled internally to
the TPS65217C and automatically switches to 5VDC power if both are connected. SW
can change the power configuration via the I2C interface from the processor. In addition,
the SW can read the TPS65217C and determine if the board is running on the 5VDC
input or the USB input. This can be beneficial to know the capability of the board to
supply current for things like operating frequency and expansion cards

とあるので、2.1mmのDV5Vジャックの方を優先して接続するらしいことがわかった!。

じゃあそろそろ、Android打ち込むか・・・・

2014-03-11

eclipseの実行構成のトラブル

eclipseのプロジェクトを削除する場合に、eclipseを経由せずに、「いきなりフォルダごと削除する」といった乱暴な消し方をすると、実行構成のランチャーの残骸が残ってしまう事がある。こんな時は、

workspace/.metadata/.plugins/org.eclipse.debug.core/.launches

以下を調べると、残骸になったランチャーが残っているので削除してやる。
その後、お決まりの

eclipse -clean

で、きれいに起動してやれば、実行履歴には残骸ランチャーが表示されなくなる。

しかし、これって何か変な構成なんじゃないか?。
特定プロジェクトのランチャーは、対応するプロジェクトフォルダ以下に保存されるべきではないだろうか。
実行履歴欄には、実行したランチャー名のみ5つ程度残せばよいだけだし、実行構成フレームの左窓の
ランチャーには、workspace以下に存在するプロジェクトフォルダから、それぞれのランチャーを走査して
掲示すればよいだけだと思う。

ecllipseは、こういう所が雑な気がする・・・。まあ、無料で使わせてもらっているのに文句は禁句なのだが・・・・・。

2014-01-10

Nexus7 修理 その8 --- 完結編 ---

ASUSから戻ったNexus7は、今の所調子が良い。
感度が悪くなるのを恐れて、せっかく購入した保護フィルムを貼らずに使っているのがよいのかもしれない。
このまま、調子良く動いてくれることを祈るのみだ。

本体の方はこれで一段落したのだが、今度はバッテリードレイン問題とやらで、SIMカードを交換することにした。
使っているSIMはOCNのものなのだが、少しでも売上を上げたいのか?、昨年末からSMS機能付きのSIMカードへの交換手数料無料キャンペーンを打っている。
バッテリードレイン問題の解決には、SMS機能が付いているSIMを利用するのが良いらしいので、130円/月額のコストを支払って使うように申し込みを行った。

ここで、初めてOCNのサービスを使う人にとっては、ぶち当たる問題を書いておく。SIMカードをSMS対応に変更するには、

WEB経由でSMS対応SIMを申し込む。
SIMが届いたら、動作確認を10日程度で行う。

動作確認が取れたら、旧SIMの解約申し込みをWEB経由で済ませ、旧SIMを、送料負担で返却する。

感の鋭い方は何が言いたいかわかると思うが、兎に角、OCNのWEBサイトは分かり難い。

どうやったら、これだけ分かり難いページを作れるの?  っていうくらい分かり難い。
そこに書かれている内容やデザインは、
自分たちマターの業務慣習が染み付いた発想と、その場凌ぎのツギハギで作られてきた構造になっているため、バナー広告とファンクションボタンの違いが分らないだけでなく、申し込み・解約の手続き画面までの気の遠くなるような道のりを覚悟しなければならなかった。

もしログイン後にわからなくてイライラする人は、迷わず電話で済ませたほうが100倍早く終わります。


はっきり言って、OCNは、俳優の阿部ちゃんのページを見て、わかりやすいデザインを勉強して欲しいと思う。