メールサーバの移行

イメージ
 自前のメールサーバを停止 これまで、自ドメインのメールサーバはVPS上に構築していた。 ・Ubuntu Server ・Postfix ・Dovecot ・spamAssassinと、BlackListの利用 Spam対策を行ってきたし、サーバ上でメールをトリガーにして各種プログラムを動かしたりしてきた。 メールサーバのメンテナンスは結構面倒くさくて、  ・Disk容量のチェック  ・不正アクセスのチェック  ・各種セキュリティパッチの適用 など、手間がかかる。 そこで、外部のサーバを利用することに…。 結構安くて使い勝手の良さそうなのが、「さくらのメールボックス」 3年契約で、3070円とな…。  メールアドレスは自分のだけなので、20GBまで利用可能!  (Gmailより大きいねぇ) ということで、早速契約。 アカウント設定を行って、既存のDNSを書き換える。WHOISも書き換えて完了。 SMTPとIMAPが利用できればOK。 ちょうど、GoogleがSPF設定していないと受信しないし、DKIMおよびDMARCに対応していないメールを弾くようになったので、対応しているのを確認。 さくらサーバ自体は、これまでお客さんのサーバとして何件も利用しているので、利用方法も難しくはない。  Webメールにも対応しているので、いざという場合にもありがたい。 ということで、各メールソフトの設定を変更。  PC(常時使用する3台)とタブレット、スマートフォンと台数は多いがそれ程手間はかからない。 問題は、旧サーバで送受信したメールの履歴だけれど、これはThunderbrdを使ってローカルに保存することで回避。  本当は、サーバtoサーバでMailboxに残そうとも考えたんだけど、古いメールはそれ程必要ないし、ローカルにバックアップしてあれば凌げるので、良しとする。 移行時にDNSの反映で若干時間がかかったものの、問題なく送受信できるのを確認して、作業完了。  これでメンテナンスの手間が減るので、安いもんです。

LibreOffice の Base で エラー

LibreOffice(Base)+LibreOffice BASIC

少々面倒な案件かも

いつもはMySQL+PHPとか多いんだけど、今回はネットワークに繋がらないマシンでも利用したい。しかも古めのPC。
でもって、同じ仕組みを合計で3台(3箇所)で使いたいが、データはすべて異なる。

複数のユーザが利用することはない。

う〜む、システム組むほどじゃないと思うんだけどなぁ。
XP上ではMS-Access97ベースで作成されたものを使用していたけれど、OSが変わると使えなくなるので、Helpとなったわけです。

しかも、現在はLibreOfficeがメインのOffice環境になっているため、新しいAccessとか新規に導入しできない。
前回テストしたら、この仕組みはAccess2013では全く動かない。

となると、Accessを導入しても、プログラムし直しか・・・。

そこで、LibreOfficeのBaseというDatabaseを利用して、構築することに。
一応ヒアリングして、不要と思われる機能はざっくり削除。
最低限の目的を達成できるレベルにスリム化する。

はじめはLAMPで構成しようと、作り始めんた(まぁ40%程度の作業完了だった)んだけど、帳票がはっきり決まっていないのと、ネットワークに繋ぎたくないという要望もあり、再度LibreOfficeで書き直すことにした。
 100%作り込まずに、もともとのUIも使うという前提にすれば、自分たちで修正や編集ができるから、より便利なのでは?との思いもある。

テーブル定義して、Queryとフォームの作成。
これを、BASICで繋いでいく感じかな。

ところが、このLibreOffice BASICが慣れていないこともあり、よく分からない。
オブジェクト名とメソッド名を探すのに一苦労。

それでも、なんとか動作させて、最低限マスタ関連のデータの登録・修正が可能になってきた。

まぁこんな感じの画面ですわ…。
1:n 結合のデータもサブフォームを使えば、それほど面倒でもなくていい感じ。
リストボックスにデータを引っ張るのに、SQLを直接書けるのがありがたい。

突如エラーが発生

ところが何度もテストしていると・・・。
SQL ステータス: S1000
エラーコード: -29
なんてダイアログが出てくるようになった。
しかも、データは挿入されたりされなかったり。

詳細を確認すると
File input/output error: /Users/username/project/xyz/system.odb.log in statement [INSERT INTO "個人口座マスタ" ( "bank_id","kojin_id","kouza_kubun","kouza_number") VALUES ( ?,?,?,?)]
あれ? なんでinsertできない?
でも実際にはデータが入っている。
なんだかおかしい。

ググってみると、似たようなエラーの質問がけっこうある。
ここ読めよって事なので、ちゃんと目を通してみる。
https://forum.openoffice.org/en/forum/viewtopic.php?f=83&t=17567


すると、base内部のDBエンジン(HSQLDB)の問題の可能性がある。
(このまま使っていても大丈夫かなぁ?と思いつつも・・・)

まずは保存しろというので、指示に従い、LibreOfficeを終了する。
再起動して、ファイルを開き、フォームからテストしてみる。
エラーは発生しない。

どうやら、修正やらデータ変更やらしながら作業をするうちに、メモリを食いつぶしてしまい、最後にエラーを吐くようだ。

とりあえずは、正常に動作するようになった。
もし、HSQLDBが度々動作しなくなるなら、MySQLにDBを切り替えれば済む話なので、それほど困るわけではないが・・・。

面倒だなというのが本音。

もうしばらく、開発を続けて、様子を見ることにしますわ。

コメント

このブログの人気の投稿

WPS Officeで日本語入力ができない

Virtualboxとnvidiaドライバ

VirtualBoxでUSBから起動