OSのサポート期限について

Microsoft 製品のOS(Windows Server 2008)のサポート期限が
2020年1月14日と迫っており、最近は各学校様から新しいサーバー
に関するお問い合わせが多くなっております。

そしてサーバーの他にも、各部署やご家庭でよくご使用されている
「Windows 7」もサポート期限が2020年1月14日となっております。

既に新しいサーバー等への移行がお済みの学校様も増えてきておりますので、
もし、新しいサーバー等への移行等をご検討されていらっしゃるようでしたら、
いつでもお気軽にご一報を頂ければと思います。

OracleからPostgreSQLへのデータ移行 – 2.バイナリデータ

OracleからPostgreSQLへのデータ移行 – 1.型指定 であらかたデータ移行はできましたが、次に問題になったのがバイナリデータでした。

最初にORA-24345エラーが発生。これについては ORA-24345 が発生するならこのディレクティブを1にしろ、と書かれているLONGTRUNCOK 1を設定することで解消しました。オンラインドキュメントではLONGTRUNKOK になっていますが、configファイルでは LONGTRUNCOK です。

そしてblobカラムに格納されていたデータが、一見移行できているように見えて途中で途切れているなどの問題が発生しました。

LONGREADLENに十分なサイズを指定することで解消しますが、余り大きくすると今度はOutOfMemoryが発生してしまいます。

OutOfMemoryを防ぐにはDATA_LIMITを小さくすれば良いのですが、そうするとデータ移行に時間がかかるようになります。

これらを踏まえて、1レコードあたりのデータサイズが大きなテーブルとそれ以外のテーブルについて出力を分けることにしました。

1レコードあたりのデータサイズの大きなテーブルをカンマ区切りでリストアップ。configファイルを二つ作り、一方には先のテーブル名をEXCLUDE に指定。もう一方には ALLOW に指定します。

ALLOW に指定した方のconfigではLONGREADLENを大きくとり、DATA_LIMITを小さくします。

これで通常のデータについては移行を手早く、サイズの大きなデータについてもエラーを回避し確実に移行できるようになりました。

OracleからPostgreSQLへのデータ移行 – 1.型指定

弊社でもOracleからPostgreSQLへの移行作業を行うことがあり、データ移行には定番でしょうが ora2pg を使用しています。

基本的にドキュメントのとおりに実行知ればデータ移行が完了してしまう優れものですが、いくつかハマったポイントもあるので書いてみたいと思います。

ちなみにLinuxで動作させる方が多いかと思いますが、ActivePerl をインストールすればWindowsでも問題もなく動作します。

ActivePerlのインストール後にパッケージマネージャでdmakeをインストールし、ora2pgのソースコードを適当なフォルダに展開、コマンドプロンプトからperl .\Makefile.pl して dmake installで終わりでした。

Oracleクライアントのインストールの手間を考えるとWindows環境で実行する方が簡単かもしれません。

さてora2pgでのデータ移行ですが、とりあえず接続先情報以外はconfigをそのまま使用して移行してみたのですが自動で行われた型指定とプログラムの動作に問題が生じました。

例えば、NUMBER(4,0)等がsmallintで移行されてしまいます。これが.NET Framework2の頃に作成された、SELECT結果を DataTable に格納、そのまま DataGridView にバインドしているようなプログラムで問題になりました。intを想定していたものが PostgreSQL+smallintだとshortになっており、DataErrorイベントが発生することに。

これをデータベース側で回避するとした場合、ora2pgのコンフィグファイルで変換する型を指定することになります。DATA_TYPE項目ですね。

Oracleの型:PostgreSQLの型, Oracleの型2:PostgreSQLの型2… のように指定するだけですが2つほどポイントが。

一つは、精度指定のカンマをバックスラッシュでエスケープすることです。これは公式ドキュメントのDATA_TYPEの項目にもしっかり書かれているのですが、読み飛ばしていたため、スクリプトで型変換リストを作成した際にハマってしまいました。

二つ目は、精度指定で小数点以下桁数が0の場合にはカンマ以降が不要という点です。公式ドキュメントの例に DATA_TYPE NUMBER(*\,0):bigint という記述があり、これを参考に NUMBER(4\, 0):integer と書いたのですが numeric(4) に変換されてしまいました。

最初、指定が反映されない理由分からず悩みましたが、実はNUMBER(4):integer のようにカンマ以降が不要でした。

数値データの取得後、プログラム上での扱いについては他にも小数点以下が全て0の場合に10 になるか 10.00 になるかといった問題も発生しました。これについては弊社ではプログラム側で対応しました。

詐欺メールは画像を見るだけでも厄介なことになりますよ。

友人がFaceBookで記事にしていた内容をシェアします。( S.Sさんありがとう。)

本文の文言はオリジナルのappleからのメールをそのまま使っているので、文章が怪しい日本語ではないので一見普通ですが、本文中のURLにマウスカーソルを重ねると、リンク先がapple.comではありません。また、apple.comのサーバーから送られていないので、Message IDという各メール個々に付けられる一意な文字列が全然違うドメイン(bestgroup.jp)になっています。
パソコンでメールのヘッダーまで見られる場合は、Receivedヘッダー、DKIM-Signature、Return-pathなんかも判断基準になります。この例は正しいメールのもので、昨日届いた詐欺メールにはDKIM-Signatureは無く、Receivedヘッダーには、bestgroup.jpのサーバーから送られたものだということが記録されていました。
あと、結構見落とされがちなのは、本文中に埋め込まれた画像を表示するしないですかね。画像って、メールに添付されてくるものと、インターネット上にあるものを埋め込んで表示するパターンがありますけど、本文中のURLをクリックしなければ画像を表示するくらいは無害だろうと思うのも危険ですよ。本文に埋め込まれた画像はWebビーコンといって、画像のURLに「誰に送ったメールを経由して開かれたか」がわかる細工がしてあります。つまり、サーバー側でログを見ると誰がメールを開いたかがわかってしまうので、騙せる可能性がある宛先としてキープされて、今後もことあるごとに色んな詐欺メールが届くことにつながります。Webビーコンは1ドットだけの画像の場合も多くて、目に見えるとは限らないので、メール本文の画像は表示しないに越したことはありません。

エクセルマクロ(すべてのシートに対しての作業)

以下のサンプルのようにすべてのシートに対して作業を繰り返すことができます。 これにより、手動でシートを追加されても、マクロは追加されたシートも含めて処理を行えます。

Sub ChangeCelColorMain()

Dim Sht As Worksheet

”表示更新をOFF
Application.ScreenUpdating = False

”全シートを対象として処理する
For Each Sht In Worksheets
Sht.Select
if SampleMethod(Sht.Name) = false then
Exit for
end if
Next Sht

”表示更新をON
Application.ScreenUpdating = True

End Sub

Private Function SampleMethod(SheetName As String) As Boolean

この中でシート名を指定して作業できます。

End Sub

 

MDBの簡易編集

弊社では、AccessのMDBを使用しているシステムがあります。

このシステムをメンテナンスするために、PCにAccessをインストールをしていました。

Accessも安くはありません。何か他に変わるソフトが無いのか探していたところに

同僚から

『MDB簡易編集』

というソフトを教えていただきました。

フリーソフトでインストールが不要で、MDBの作成や編集をすることができます。

今では、このソフトのみでシステムのメンテナンスができます。

一度、お試ししては、どうでしょうか。

PostgreSQLでのUNION ALLについて

例) SELECT NULL UNION ALL SELECT NULL UNION ALL SELECT 1;

Oracleであれば[NULL] [NULL] [1]といった結果が得られます。(ただしFROM DUALが必要)

しかしPostgreSQLではこれを

(SELECT NULL UNION ALL SELECT NULL) UNION ALL SELECT 1;

と認識するため括弧内を文字型にキャストした後数値型と結合しようとしてエラーになります

ただし下記のような場合だと文字型にキャストするだけなのでエラーは発生しません

SELECT NULL UNION ALL SELECT 1;

大学入学共通テスト

2020年度から現行のセンター試験に代わって実施される大学入学共通テストついて

大学入試センターから「大学入試英語成績提供システム」の概要が発表されました。

https://www.dnc.ac.jp/news/20190107-01.html

1.受験生と大学入試センター間 →「英語成績データ確認システム」(仮称、新規構築

試験実施主体と大学入試センター間 →「成績受理システム」(仮称、新規構築)

3.大学と大学入試センター間 →「成績提供システム」(既存システムの改修)

大きく、以上の3つの機能で構成されるとの事です。

また、受験生に割り振られる共通IDの申し込みが2019年11月から開始予定でそれに伴う

ヘルプデスクが夏頃、開設される様です。

 

弊社製品のCampusMagicも3の成績提供システム改修に合わせての対応が必要となってきますので

今後の動向が気になりますね。

Windows10の動作が遅いと感じたときにやるべきこと

必要のないサービスは停止すれば、驚異的に動作速度が向上します。

“SuperFetch” サービス

“Windows Search” サービス

この二つのサービスはCPUとHDDアクセスを沢山消費します。電気も消費します。

サービスの停止方法はネットをググってもらえれば簡単に探すことができます。

Windows10が遅いと感じた方はぜひお試しください。

アプリもOneDrive、Backup and Sync from Googleも ネット上のファイルバックアップソフトなんで必要なければアンインストールした方がよいでしょう。仕事で使うPCには必要のないアプリです。

日本語学校様向け クラウド教務システム(Jimmi) 機能追加のお知らせ

新様式への変更に伴い以下の機能を変更しました。

1.在留資格認定証明書交付申請書の新様式への変更

2.在留期間更新許可申請書の新様式への変更

3.申請者一覧の新様式対応

4.応募者登録チェックリストの新様式対応

5.在留資格認定証明書受理台帳の新様式対応

6.「応募者」登録画面 (新様式で必要となる「卒業予定日」入力欄を追加)

7.「 紹介者」登録画面 (「本国政府による登録番号」欄を追加)

8.「国」登録画面 (「要追加書類」チェックの名称を「入管指定7か国」に変更)

http://www.variantsoft.co.jp/campusmagic/jimmi.php