2009年11月12日木曜日

印鑑証明書の電子申請に挑戦

以前から総務で印鑑証明書の申請を電子化したい、という話があったのですが、急に印鑑証明書が必要になるといったケースばかりでなかなかできませんでした。
そんな感じで1年程保留になっていたのですが、今回の印鑑証明書は取得に余裕があるとの事だったので挑戦してみました。
電子証明書はe-Taxを使う時に取得していたのと、必要なソフトも1年前に入れていたので手順に沿って申請を行いました。
手順は結構面倒くさかったのですが、無事申請でき翌日には印鑑証明書が郵送されてきたので良かったですが、そうなるまでに他の問題に引っかかったのが大変でした。

・申請書作成支援ソフトのバージョン
ソフト自体は1年前に入れていてそのままだったのですが、バージョンアップがある事を知らずにそのままデータを作成。
データの作成は問題なく出来てホームページ上から申請をしてみたのですが、開くときに「様式のバージョンチェック」でエラーになってしまいました。
そこでバージョンが古い事がわかり、支援ソフトのメニューから更新を行ったのですが、書式等は正常に更新出来たものの、ソフト自体は更新がエラーになり続行できませんでした。
しょうがないので法務省のホームページから最新版をダウンロードし、旧バージョンを削除した後にインストール。
先ほど作成したファイルを読み込み、保存をして再度申請を試みたのですが、また同様のバージョンチェックでエラーに...
まさかと思い、支援ソフトで新規に作成し直した所、開けるようになりました。

古い形式のファイルを読み込めるのはいいのですが、保存時に最新版の書式にはしてくれないようです。
今後同様にバージョンアップされた時にこの仕様では再利用しての申請が出来ないと思うので対応してもらいたい所です。

・Javaの実行環境
無事にデータを開けたので納付情報を設定して「デジタル署名」のボタンをクリックし、電子証明書の種類で「ファイル」選択した所、マウスカーソルが砂時計になったままになってしまいました。
処理が遅いのかな?と思ったのですが周りのボタンが押せるのでどうやらファイル選択ダイアログが表示できなくなっているようです。

申請を行ったパソコンはJava(TM) 6 Update 7 と Update 15が入っています。
法務省のホームページを見るとUpdate15まで対応済みとあったのですが、
なんだか怪しいのでUpdate 15を削除して再起動し、同様の作業をした所無事にファイル選択ダイアログアが表示され作業を続ける事が出来ました。

単にJava のバージョンの問題なのか、それともほかに要因があるのか分からないので切り分けていきたい所ですが、法務省のシステムの更新を待ちたい所です。

2009年11月2日月曜日

ACCESSとJavaの日付の扱い

ACCESSでは"09/10/27"という日付の文字列を 以下のコードでフォーマットすると、"2009/10/27"という結果になるが、

Dim strFormattedDate As String
strFormattedDate = $Format("09/10/27", "yyyy/mm/dd")

Javaで同様の処理を行うと、strFormattedDate の値が"0009/10/27" となってしまう。

SimpleDateFormat dateFormat =
  (SimpleDateFormat)DateFormat.getDateInstance();
dateFormat.applyPattern("yyyy/MM/dd");
Date date = DateFormat.getDateInstance().parse("09/10/27");
   String formattedDate = dataFormat.format(date);

09年という情報が入ってきた時に
ACCESSは2009年
Javaは           9年

と判定するのが今回の違いの原因なのだが、人間的な感覚ではACCESSが正しいが、システム仕様としてはJavaの方が正しくなる。

ちなみにACCESSの方は基準が1930年になっているようで、
ACCESSのコードで年数を増やしていくと、"30/01/01"から "1930/01/01"となってしまう。
さすがにそこまで同じシステムを使うとは思えないが、こういった仕様の点からも脱ACCESSは進めていかないといけない。

仕様としては
・入力欄を YYYY/MM/DDの4ケタにする
・ACCESSと同じように30年辺りで区切るようにする
のどちらかになるが、どちらがうちのシステムとしてあるべきか検討しないといけない。

JFormattedTextFieldの不具合?と対処

日付の入力や郵便番号の入力制御でJFormattedTextFieldを使っているが、おかしな挙動になる。
例えば日付をYY/MM/DD形式で入力したい場合でJFormattedTextFieldに"##/##/##"とマスクを設定すると

・日付と判定されない数値も入ってしまう
(09/12/32、09/13/01等)

・マスクに一致しない値を入れると前の数値に戻る
"09/11/01"と入力されている状態で、"09/01/  "
と入れフォーカスを外すと"09/11/01"に戻る。
空白にした場合も同様になる。


この状態では入力済みの日付をクリアする。といったケースに対応できないので、以下のような処理を実装し、ラッピングするようにした

■ FocusGain()時
if (jFormattedTextField1.getText().isEmpty() == true) {
    MaskFormatter maskFormatter =
        new MaskFormatter("##/##/##");
    DefaultFormatterFactory formatterFactory =
        new DefaultFormatterFactory(maskFormatter);

    jFormattedTextField1.setFormatterFactory(formatterFactory);

}

■ FocusLost()時
jFormattedTextField1.setFormatterFactory(null);
try {
    MaskFormatter maskFormatter =
        new MaskFormatter("##/##/##");
    maskFormatter.valueToString(jFormattedTextField1.getText());
   
} catch (java.text.ParseException ex) {
    jFormattedTextField1.setText("");
}

FocusGain()時にテキストが空であれば、setFormatterFactory()を行いマスクを有効に、
FocusList()時はFormatterFactoryを無効にして、MaskFormatterのvalueToString()によって書式の整合性をチェックしマッチしなければテキストを空にするという風にした

日付の妥当チェックについてはこの後に対応予定。

2009年10月26日月曜日

Oracleのデータロック

私が入社した時には既に稼働していた販売システムの一部で障害が発生、マスタの変更処理中にパソコンが固まり、強制終了をした所レコードがロックされてしまった様子。

その販売システムは今は付き合いのないシステム会社が作ったもので、VB6とOracleという構成。
画面単位のロック解除処理はメニューに用意されているのだが、今回の様なレコード単位のロック解除は用意されていないので直接データベースを操作する必要があるようで調べてみたところ、どうやらOracleのプロセスがサーバ側に残っていて、それが該当するレコードをロックしているようだった。

そのプロセスを解除する方法を上司に聞いてみたのだが、そのシステムはタッチしていないみたいでやった事が無いとの事、私自身もOracleは学生の時にちょっと触った程度なのでまずは調べてみたのだが、手順としては

1、SQLPlusを起動して以下のSQLを実行
  select s.sid ,s.serial# from v$session s ,v$locked_object l

2、データをロックしているセッションを確認して、以下のSQL?を実行
  ALTER SYSTEM KILL SESSION 'sid,serial#'

となるようなのだが、セッションの特定が出来ないのと、明日でもいいとの事だったので明日のサーバ起動後にもう一度様子を見ようという事になった。

良く考えてみると自社の基幹システムのデータベースの詳細を知っている人がいないというのは結構まずい気がする。
時間を見て色々と学んでおく必要がありそうだ。





2009年10月15日木曜日

PC再セットアップ(VAIO)2

「PC再セットアップ(VAIO)」の続き、

夜に友人宅にお邪魔してセットアップの続きを行った。
無線LANの設定は購入時に親戚から全てやってもらっていたそうで、どうなっているか分からないとの事。
ルーターはIO・DATAだったが、無線カードはCorega、何故こういう組み合わせなのかは不明。

恐らくWEPキー等でセキュリティを掛けているので、一度LANケーブルでルーターに接続してWEPキーを取得しようと思ったのだが、
「ひょっとしたら何もセキュリティを掛けていないんじゃないか?」と思い無線カードを差した所接続されてしまった...

友人に聞いたところ、「そういえば無線LANのセキュリティの設定はしていない」と親戚の人が言っていたかも、という話だった。
このままでは誰でも無線LANを使えてしまう危険性がありまずいのだが、今日は時間が無いのでまたの機会にセキュリティの設定をする事にした。
ルーターの設定もどうなっているのか不安なので早めに対処をしないといけなさそう。

部品代と別に手間賃という事でで缶ビールを6本貰ったのでありがたく貰い、世間話をして帰宅。





2009年10月13日火曜日

PC再セットアップ(VAIO)

友人から「パソコン買うとしたら何がいい?」と電話があった
聞くと今使っているパソコンが遅くてしょうが無いという事だった。
そのパソコンは5年前のVAIOだが
スペック自体はCelelon 2.4GHzでWindowsXPを使う分には問題ないはずだがメモリが買った時の256MBのままなのでその辺が影響していると思い、まずは現状を確認。

■ 状態
・ パソコンはSony VAIO PCG-GRT55F/B
・メモリは購入時のまま256MB
 ・パソコンを起動してから使えるようになるまで10分位かかる
・その間ハードディスクのアクセスランプもほぼ点灯したまま
・起動中タスクマネージャのメモリ使用量が500MBを超える場合がある


タスクマネージャやmsconfigで確認すると余計なものがいろいろ起動しているので、その辺の見直しも考えたが、重要なデータも無いとの事なので、メモリ増設、HDD入替、OS入れ直しを行った。

■ 作業
1、必要な部品の購入
・メモリ
Yahooオークションで新品を購入
SODIMMスロット(DDR266)は値段が下がっているようで、
512MBが送料込みで1,800円位で購入できた

・HDD
現状が 容量60G 回転数4200rpm
容量は80Gあれば十分という話だったので
HGSTの80G 5400rpmのHDDを価格.com経由で購入
送料込で5,500円位

2、リカバリメディアの作成
この機種はリカバリメディアがついていないDtoDのようなので、
「VAIOリカバリメニュー」より作成
起動用CDとデータ用DVDそれぞれ一枚使用

3、部品の装着
合わせてダスタースプレーで掃除

4、リカバリ
2で作成した起動用CDを使ってPCを起動、画面の指示通りに
作業を行いOSの入れ直しと付属アプリケーションのインストールまで完了

5、Windowsの更新
この状態で起動は1分を切るくらい早くなったのだが、
WindowsXP ServicePack1までしか適用されていないので更新。
単純に5年位分更新データがあったのでたまに様子を見る感じで放置
ServicePack3は入れるかどうか微妙な所だっただが、
最近は不具合もないようなので適用
InternetExplorer 7,8 は個人的に使いにくいので
インストールしない事にした。

6、ワイヤレスの設定
コレガの無線カードのドライバをダウンロードしてセットアップ
無線LANの設定は後日友人宅で行う事に

7、パーティションサイズの変更
リカバリする時にCドライブの容量を標準?の20Gに設定したのだが、
ここまで作業した所残り容量が3Gしかなくなったので今後のために
KNOPPIXのPartitionEditorを使ってパーティションを修正

8、HDDのメンテナンス
レジストリの掃除とHDDのデフラグを行った
使用したソフトは下のもの
レジストリ掃除 :Free Window Registry Repair 2.0
デフラグ     :すっきりデフラグ

9、イメージバックアップ
この状態では今後障害が発生した場合に
上記作業をもう一度しなければならないのでOSバックアップを行った。
使用したソフトは「
Macrium Reflect FREE Edition


ここまでの作業でパソコンの起動は2分かからない感じで、このスペックではいい方ではないかなという所ですが、友人に渡した後、iTuneを入れてからどうなるかが問題です。
あと、ADSL開始~無線LANの導入はパソコンに詳しい親戚に全てやってもらったそうでひょっとしたらその辺で時間がかかりそうな感じです。








2009年10月9日金曜日

電源ユニット故障

朝一別事業部から事務用に使っているPCの電源が入らないとの連絡があり対応。機種自体は7年前のPCでWindows2000なので、買い替えする方向で話を進めたが、帳票の出力があり、業務に支障が出るのでまずは修理できるか確認

■ 状態
・昨日帰る時は普通に終了できた
・電源入らず
・LANポートにLANケーブルがささっているがランプ未点灯

■ 作業
1、HDDの確認
中のデータが重要なのでIDE-USBの変換ツールを使用
問題なく中身が見れるので、代替え機に移植で何とか対応できそう
HDDを抜いた状態で電源を入れてみたが電源入らず、
HDDが原因ではなさそう。

2、中の掃除
床に直置きしていたせいか、ゴミが相当溜まっていたので
ダスタースプレーで掃除

3、ケーブル、メモリのチェック
内部の電源ケーブル、メモリの差し直しで直った事があったので
チェックがてら試したが電源入らず。

4、電源ユニットのチェック
ここまでくるとあとはマザーボードか電源ユニットの問題になるので、
まずは電源ユニットを確認テスト用PCの電源ユニットがサイズは
全然違うものの出力が同じだったので分解して接続。
マザーボードのLEDが点灯したのでLANケーブルを差してみた所
こちらも点灯したので、HDDを接続して起動した所無事に起動、
チェックディスクが始まり完了後に無事に起動する事を確認


幸い電源ユニットだけの故障のようなのでテストPC用の電源ユニットを外に出したままの状態で使用してもらう事に
同じ電源ユニットは中古でも出回っていなく、またサイズが若干小さく、市販の物が本体に収まらないので、新しいPCを買う事にしました。

■ 残件
・HDDが大丈夫と分かった時点でテスト機にHDDを入れて
起動したができなかった。
Windows2000であればハードウェアの構成が変わっても起動できたと思うが...

・他にも古いパソコンがあり、急に壊れた場合業務に支障が出るので、
必要なアプリケーションを入れたPCを準備しておきたい