Oracle DB のダンプファイルがインポート出来ない

 今やってる案件で、別ベンダーさん側がメイン部分を作って筆者はその周辺を作っているのですが、そろそろデータが欲しくなったので提供を依頼したところ、ダンプファイルが送られてきました。
 さっそく開発端末のOracleDB11Expressにインポートしてみようとしたところ
>imp
Import: Release 11.2.0.2.0 – Production on 火 10月 4 10:48:15 2016
・・・中略

IMP-00401: ダンプ・ファイル”data_20160928.dmp”
は、データ・ポンプ・エクスポート・ダンプ・ファイルの場合があります
IMP-00000: エラーが発生したためインポートを終了します。

ん?何でかダメみたいとググっていくと、どうやら今時はimpdpを使うらしい。。
筆者はOracle8から9辺りまでは実際の開発に従事してましたが、10以降は社内SEであまり具体的な作業をやる機会が無かったので知りませんでした。

で、impdpとやらでインポートしてみます。
>impdp
・・・中略

接続先: Oracle Database 11g Express Edition Release 11.2.0.2.0 – Production
ORA-39006: 内部エラーが発生しました。
ORA-39065: DISPATCHでマスター・プロセスの予期しない例外が発生しました
ORA-04063: package body “SYS.DBMS_METADATA_UTIL”にエラーがあります。
ORA-06508: PL/SQL: コールしているプログラム単位が見つかりませんでした: “SYS.DBMS
_METADATA_UTIL”

ORA-39097: データ・ポンプ・ジョブで予期しないエラー-6508が見つかりました

あれ?パッケージが無いの?
じゃあ、探そうとOracleインストールディレクトリより、GREPで上記のUTILを探すと下記を発見。
早速実行

>sqlplus sys/**** as sysdba

@C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin\dbmsmetu.sql

続けてINVALIDのパッケージをしつこくコンパイルしたり、データ・ディクショナリ系SQLを実行したり・・・
http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05771-04/scripts.htm

気を取り直して再度impdp実行
>impdp
・・・中略

ORA-39000: ダンプ・ファイル指定が無効です
ORA-31640: ダンプ・ファイル”C:\oraclexe\app\oracle\admin\xe\dpdump\expdat.dmp”を
読取りのためにオープンできません
ORA-27041: ファイルをオープンできません。

まだダメ。。
下記をちゃんと読んでディレクトリを確認し、既存の設定箇所にダンプを置いて実行。
https://blogs.oracle.com/oracle4engineer/entry/data_pumpexpdpimpdp
>impdp
接続先: Oracle Database 11g Express Edition Release 11.2.0.2.0 – Production
ORA-39001: 引数値が無効です
ORA-39000: ダンプ・ファイル指定が無効です
ORA-39142: 互換性のないバージョン番号4.1が、ダンプ・ファイル”C:\temp\data_20160928.dmp”内にあります

結局、ダンプを作成したOracleのバージョンが12なので無理っぽい。
こちらにもXE特有の問題があるとの事なので、開発端末へのインポートは諦め、テストサーバを作ってもらうまで待つことにします。。
http://freespeedo.blog.fc2.com/blog-entry-1.html#comment3

法人の確定申告を終えて

 今日、法人の確定申告をしてきましたので、その経緯マトメです。
7月末が決算期末なので、8月中に帳簿系を弥生会計にひととおり纏め決算書が出せる状態になり、今月から確定申告という感じに流していたのですが、eTaxで試みるも全く訳が解らず。。最初は弥生会計からeTaxデータ書き出しでeTaxにアップロードするもエラーで終了「読み込んだ申告・申請データの本税が1円以上でないため、納付情報登録依頼が作成できません」
 個人の青色申告はこんな感じで終わっていたと思うのですが、どうやら法人はソフトで税金計算をしてくれなくて、自力で税金を計算した上じゃないと無理らしい。。って、どう計算するの??と、こちらのニーズにぴったりな下記本を発見。
新版 ひとり社長の経理の基本

 Amazonで購入し、それを参考に税金を計算、その後弥生会計に税額を仕訳入力し、再度eTaxリトライするも、今後は帳票が出力できるようになるもエラーとしか出力されていない。。上記の本にもeTaxの利用が現実的では無いとの記述有、これは素人には無理です、諦めました。。

 そんで、その前に税務署から送られて来てた書類から必要そうな書類に手書きを開始。資産も無いし、初年なので消費税も関係無いしなので、書類の用意は上記の本を参考に下記の書類を用意。
 ・法人税申告書
  ・別表1(1)+次葉  法人税額の計算
  ・別表4(簡易方式)  所得の金額の計算に関する明細書(簡易方式)
  ・別表15       交際費等の損金算入に関する明細書
 ・法人事業概況説明書
 ・決算書
 ・勘定科目の内訳表
    勘定科目内訳明細書を使って作成
 ・事業年度分の適用額明細書
他に地方税を県税事務所へ提出する
 ・第六号様式
市役所へ提出する
 ・第20号様式

用意が出来たので、申告前日に税務署へ電話し、始めてなんで見てくださいと事前予約、午後一ならOKと、これで全て準備が整いました。
 当日、1日で全部済ませたいのでハンコや登記、eTaxの番号とか現金を持って税務署へ。
 税務署の担当の人に書類を提示し、下記も必要ですとその場で書き方を教えてもらって手書き。
 ・別表2    同族会社等の判定に関する明細書     一人法人でも必要らしい。。 
 ・別表5(1) 利益積立金額及び資本金の額の計算に関する明細書 
 ・別表5(2) 租税公課の納付状況等に関する明細書   別表5は初年度は要らないと思ったら必要らしい。。

 一か所、「事業年度分の適用額明細書」で 第42条の3の2第1項第1号で金額が当期利益ではなく、所得金額だと訂正しましたが、30分程度でチェックは完了、その後申告書を提出、その後納付書を書いて現金で税務署ダイレクト現金納付、ついでに納税証明書も銀行口座追加したら使うかもなんで取得して約1時間で終了。

 その足で県税事務所へ、上記の第六様式という申告書を提出。ここで、一か所間違っていると指摘有。事業開始年月日が3日からになっているので、均等割は12か月でなく11か月との事。。金額を書き直して提出し、その場で納付書を書いてこちらも現金納付完了。

 さらに市役所へ、上記の第20号様式という申告書を提出。特にチェックしているような感じも無かったですが、受付ハンコを押されたのでOKらしい、こちらも納付書を書いてその場で現金納付。

 県税で訂正されたのがちょっと気になりますが、市では何もなかったし、とりあえず終わりましたという事で。。

PS 翌日、市役所の方から電話があり、県税に指摘された箇所と同じ箇所で税額違うとの事、差額を振り込んでくれるみたいでした。

シン・ゴジラを見てきた

 昨日、シン・ゴジラを見てきました。映画館でゴジラを見るのは小学生の時以来なので約30年ぶりの事です。
 その時とシン・ゴジラの共通点が、初代ゴジラをモチーフにその時代に合わせて作られているという事なんですが、小学生当時の記憶はゴジラの悪役ヅラとか、でかいフナムシとか、スーパーXとかぐらいなんです。。でも、映画としてのクオリティはともかく、映像としては白黒の初代から見れば断然進歩していました。小学生の時に白黒のゴジラを見ても正直何がよいのかよくわからなかったのです。
 シン・ゴジラを見て感じるのは、映像だけでなく全てが進歩しているという事です。今という時代に与えられたリソースを最大限に駆使した結果、シン・ゴジラがこうなったというのが感じられます。
 筆者は基本的に、現在というものは過去からの進歩の上に成り立っていると考えるクチなので、シン・ゴジラは昔のゴジラより確実に進歩していると思いますが、それは過去を否定する事では無く、過去の延長線上にある現在が進歩しているんだから、結果的に過去は肯定すべきものになるのです。
 映画のようなコンテンツの一方で、例えば音楽や絵画といったものは別のベクトルなんだと思います。その違いは早い話、多数の人が関わった仕事かごく少数の仕事か、技術要素が強いかどうかなのかと。今の時代、技術要素といえば殆どがコンピューターと切り離せないものになってます。なので、筆者の偏った考え方は仕事柄かも?
 圧倒的な破壊シーンだけでなく印象に残ったのが、最後の「日本はスクラップ・アンド・ビルドでやってきたんだ」的な言葉でした。
 映画には元気をもらいましたが、アクアラインを通るたびに崩落シーンを思い出してしまいそうです。。

weblogic.xmlのprefer-web-inf-classesをtrueにしたらハマった・・

 前に作ったWeblogicのWebアプリで
JAX-RSを使ってみる
weblogicよりもアプリケーションモジュールに入れるライブラリを優先させたい事情があり、weblogic.xmlにprefer-web-inf-classesのtrueを追加してみたところ、これまで問題無かったのが、デプロイ出来ない状態に。。
ログには下記のエラーが出ています。

どうも、JAX-RSに関して何らかの問題が発生しているようなのですが、JAX-RSに関して明示しているライブラリはpom.xmlに書いた下記のみです。

いろいろ試行錯誤した結果、上記で指定したものよりweblogicライブラリが優先的に使用されていて、1年間問題無かったのが、ライブラリの優先順位を変えた事によって、問題が発生したようなのです。最終的にcom.sun.jerseyについて上記のpomをジャージーのバンドルセットに変える事で解消しました。

いや、びっくりしました。。

源泉徴収してみた

 法人を設立時に「源泉所得税の納期の特例の承認に関する申請書」を提出した後、半年前にゼロ円で終わっていた源泉徴収ですが、それから半年が経ち次の期限7月10日が迫ってきたので、いろいろ調べながら手続きをしていきました。
 まず、税額をどう計算すればよいかですが、毎月の給与を決め、税務署が送ってきた「源泉徴収税額表」という冊子を見ながら、いくらになるかと見ていくと、「甲」と「乙」という欄があり、何が違うんだと読んでいくと、「扶養控除等申告書」の提出が有れば「甲」無ければ「乙」という事みたいです。
 「扶養控除等申告書」って確かサラリーマン時代に書いた記憶はありますが、どこに提出するものかは知らず、、で、さらに調べていくと給与の支払者に出してその先は特にないとの事。
https://www.nta.go.jp/tetsuzuki/shinsei/annai/gensen/annai/1648_01.htm
 という事は、筆者のような一人法人は自分で書いて自分に提出という事らしい。。提出したよ!って「源泉徴収税額表」の「甲」の欄で給与に該当する金額の6か月分を税額として、e-Taxで「所得税徴収高計算書」を作成してみたのですが、どうも事前に電子納税の届け出をしないとe-Taxで納付が出来ないので意味が無いようです。次回までに電子納税できるよう手続きしとくとして、今回はe-Taxは使わず、前に税務署から送られてきていた「所得税徴収高計算書」を金融機関に持って行って納付する事にしました。が、用紙がe-Taxで作成したフォーマットとはちょっと違う事に気が付き、納期特例の6か月まとめるタイプが手元に無い事が判明。
 後日、仕事場の近所にある税務署へ行き、納期特例用の「所得税徴収高計算書」を入手、その足で銀行へ行って納付してきました。
 もうすぐ、法人設立1年が経とうとしていますので、決算に向けていろいろ手続き的な事を調べないといけませんね。

Windows2012ServerR2評価版を入れてみたが、、

 先日、とあるシステムの導入に向けてのトライアル環境を作る手伝いをしていたのですが、OSがWindows指定なので評価版のWindowsServer2012R2をインストールしました。
 OSのインストール自体は簡単なのですがインストールの数日後見てみると勝手に電源が落ちていて、誰かに落とされたかな?とあまり気にしていなかったのですが、とあるシステムの導入作業時に勝手にシャットダウンし始めて困った事に。180日間使用できると書いてあったはずなんですが。。
 で、インストール時を思い出してみるとサーバ日付がだいぶ古くなっていたのを直していたので、それで180日間が終わってしまったような状態になっていた模様。。さらに調べてみると期限切れ後も延長できると下記を発見。

https://msdn.microsoft.com/ja-jp/library/dn303418(v=ws.11).aspx

これで暫くは持ちますが、こんな落とし穴があるのでインストール前にちゃんと時間合わせしとくべきでした。
他にもネットワークのセキュリティ設定あたりも結構引っかかったので、ちゃんと調べてから作業をしないといけませんね。

ロダンは地獄の門を作ったけど彫ってなかった

 先週末、嫁さんに誘われて静岡へ美術館巡りに行ってきました。静岡県立美術館と静岡市立美術館でどちらも初です。
 静岡県立美術館の方は、残念ながら今話題の若冲さんの有名な絵が前週で終わってましたが、ロダン館は結構凄かったです。考える人、地獄の門といった有名な彫刻が勢ぞろい状態です。静岡になんでこれだけのものが揃ってるんだろう?筆者は全然美術に詳しくないので後で知った事なんですが、これらの彫刻は一つだけでなく複数存在しているようです。なぜかというと、ブロンズ像は型を取って銅を流し込んで作るものなので、同じ型から作ったものは全てオリジナルという扱いになっているようなのです。静岡県立美術館だけでも考える人は地獄の門についているのを合わせて大・中・小と3体ありました。
 で、地獄の門の方ですが、こちらは世界に7つあって、日本には上野の国立西洋美術館とここ静岡県立美術館の2か所あるようですが、この地獄の門は、全てロダンの死後に作成されたものであり、しかも静岡にあるのは結構最近作成されたものとの事。これをロダンが作ったものと言えるのでしょうか?
 どうやら元々ロダンは自分で彫刻を彫っている訳では無く、粘土で原型を作った後にその型を取って石膏の原型を作って確認した後は、その型から鋳造してもらう工房にブロンズ像の制作を依頼するという形だったようなのです。静岡にあるのはその原型を使っているので本物という事になってます。
 そこで思い出したのですが、筆者が社内SEに転職して最初の仕事、利用部門内に設けられたシステム開発室という部署と兼務になりシステム構築プロジェクトの担当をしていた時の事です。半年近くを要件定義作業で費やし、その後は複数のベンダーに開発を依頼しつつ、同時にその繋ぎの一部を自らプログラミングしていたのですが、その室長が言っていた「俺たちが作ってる」という言葉に当初違和感を覚えてました。いや、作っているのはベンダーさんや自分も含めた開発者じゃないかと。
 でも、しばらくしてその考えは間違いである事に気が付きました。何を作るべきかを決めた人は確かに作った人と言っていい、最重要人物です。大阪城を作ったのは秀吉で、Windowsを作ったのはビル・ゲイツ、iPhoneを作ったのはスティーブ・ジョブスなんです。でも、それを作るにあたってたくさんの人が携わった事は事実であり、それを忘れてはいけませんね。
 県立美術館の方はルーシー・リー展を見てきました。そちらで思ったのは、美術品と工業製品の境目はどこにあるんだろうという点なんですが、美術品とされるものは芸術家という個人名義のものしか美術品とされないような気がします。著名な漫画家には大勢のアシスタントがいるけど基本的に漫画家名義の作品なので美術品と同じように感じられますが、一方で文学とか音楽とかはゴーストライター的な存在が判明すれば即叩かれてますよね。某ゴーストライター騒ぎがあったクラシック音楽を騒ぎになる前に生で聴いた事がありますが、それは感動したものです。あれだけメディアに叩かれては、その後あの音楽を聴いた人はどう感じているのでしょう?製品の場合は、強いリーダーシップが見えない企業が作った製品は、どんなに素晴らしいモノであっても、個人的な誰かの強い思いとかが見えないと、いいモノ以上には成らないように思います。とは言え、ソフトウエアは美術品には成りえませんね。例えば、iPhoneを美術館が展示したとしてもハードの方がメインにしかならず、ソフトの部分を一般的な人々に説明する事は不可能としか思えません。

createQueryとcreateNativeQueryは結構違う

 現在、JavaEEで作っているアプリケーションに画面を追加する事になり、それまではJPAのJPQLを使ってのcreateQueryで済んでいたのですが、今回はGROUP BYとかUNIONとかでSQLを作る必要があり、JPQLでは無理そうなのでcreateNativeQueryで実装する事にしました。
 で、最初はcreateQueryをcreateNativeQueryに置き換えてSQL文を噛ませばいいかなと思っていたのですが、どうやら結構違うらしい。。
 一つ目の違いは、createQueryならテーブル定義に沿って作ったEntityに直接入れる事が出来ますが、ちょっと複雑なSQLだと問い合わせ結果に一致したEntityを作る事自体が難しい。
 二つ目はバインド変数の違い。createQueryならバインド変数は[:PARAM]のように文字として指定して下記のように変数をセットして結果を取得できますが、

createNativeQueryでは[?]でないとダメという解りにくい相違点。。
結果的に下記のようになりました。

※上記のSummaryは上記クエリ結果をセットする為だけのクラスです。

なお、数値はBigDecimalで扱うようです。
バインド変数の仕様違いにはちょっとハマりました。。

JSF2単純リダイレクト

JSF2でコンテンツルートのページから別ページへリダイレクトさせるのに何がいいかなと調べたところ、meta refreshタグを使って飛ばすのが一番簡単そうでした。具体的にはコンテンツルートにログイン画面を置くことが出来ない場合に、ログイン画面に飛ばすという要件への対応になります。

カテゴリー: Java

データの意味

 先日、セミナーにちょっと行ってきました。
アプリケーションセキュリティに関するセミナーでしたが、印象に残ったのが、扱うデータの意味を理解して対策を立てるのは、どんなセキュリティ対策のツールを使っても扱うのが相当困難だという点でした。
 企業内で扱うデータの意味を知っているのは、基本的に企業内SEもしくはその位置付けにある人達です。何を知っているかと言えば、具体的にはテーブルとカラム、データ項目、インターフェース設計なんだと思います。前職で一時的にホストを担当した時は、VSAMのレコードレイアウト図として紙でしか資料が残っていなかったので、エクセルのテーブル設計書に落として、把握している範囲で項目の備考欄を埋めていきました。
 備考欄に殆ど何も書かれていないテーブル設計書をたまに見かけますが、項目の備考欄こそデータの意味を記載する箇所ではないかと思います。項目名だけでデータの意味を想定するのは間違いが生まれる元ですので、どういう意味の項目であるか、どういう値が入りえるのか、他とどういう関係を持っているか、出来る限り備考欄を埋める事が、データ設計をする人としてのそのデータを扱う他者への優しさではないでしょうかね?