サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
www.kinusati.net
MySQL 5.1に対してWindows XP上からJDBCでアクセスしたら、以下の症状が出ました。 全件検索(SELECT * FROM hoge)の場合、データは文字化けせずにとれる 日本語を利用してLike検索(SELECT * FROM hoge where name like ‘%ほげほげ%’)すると、SQLのLike部分が文字化けして、正常に検索出来ない。 環境は以下です。 JavaのソースはすべてUTF-8で記載 MySQLのデータベースはutf8で作成 JDBCはConnector/J 5.1.12を利用 で、調査結果です。 MySQL<=>JavaはUTF-8と同一なので、MySQLからJDBC経由で取得したデータは文字化けせずに取得可能 検索のSQL(SELECT * FROM hoge where name like ‘%ほげほげ%’)の場合、OS標準の文字コード(
MySQLお勉強メモ(SQLチューニング編)です。 EXPLAIN 概要 EXPLAINを利用し、SQLのアクセスパスを確認できる。 SELECTには対応しているが、DELETE/UPDATEには対応していない。実行する場合はDELETE/UPDATEをSELECTに置き換えること。 実行結果 重要なのは、type, key, rows, Extraの部分 mysql> explain select link_id from wp_links where link_id = '1'\G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: wp_links type: const possible_keys: PRIMARY key: PRIMARY k
rsyncでサーバのデータバックアップを取得したい。 ssh経由でアクセスしてrsyncすればすむ話といえばそうなのだが、一般ユーザでsshした場合は権限が不足してバックアップ漏れが発生する。かといって、root権限でsshすることはセキュリティ上も、便宜上も不可!としている。 やっぱroot権限でsshできちゃうと負けた気がするし、万が一、rootアカウントのパスワードが推測されてしまうと、目も当てられないし(毎日のようにsshの接続失敗ログにrootアカウントでパスワードハックしようとしているログを見てしまうとどきどきしちゃいます)。 じゃぁバックアップはどうするの?という話になりますが、rsync先のサーバでsudoコマンド + rsyncコマンドを実行するように設定&指定すればよい。 まず、rsync先サーバに対してssh接続するアカウントにsudoの設定を加えよう。具体的なsud
Javaでメモリリークを調査するため、hprofを利用してメモリプロファイルを行うことがある。 「Java SE 6完全攻略」 第5回 プロファイラ hprofとよき相棒 jhat hprofはJVMの起動オプションを指定してプロファイルをとる代物であるが、若干もさっとするし、何よりよく落ちる・・・Tomcatを起動していたらTomcatもろとも道連れになり実用に耐えません・・・ HPROF ERROR: Cannot allocate malloc memory [hprof_util.c:160] HPROF TERMINATED PROCESS これでは使い物にならんと思って調べていたら、jmapというツールが存在することを発見。jmapはJVMのPIDを指定することでヒープデータを取得することが可能なツール。これを使えば↑の用にhprofが落ちて困ることは回避可能となる。jmapは
MySQLお勉強メモ、InnoDB編です。 特徴 データ形式 ibdata files : データ/インデックス領域。UNDO領域/データディクショナリが含まれる。 ib_logfile files : REDOログのようなもの メタデータ : データベースディレクトリに存在(テーブル名.FYM) ibdataはテーブル毎に分割することが可能。テーブルメンテナンスやパーティションで有効。 トランザクション 対応。ACID属性に準拠している。デフォルトはAUTOCOMMIT。 デフォルト分離レベルはrepeatable read。Oracleはread committed。 ロック 行ロック。完全な行レベルロックではなく、インデックスのnext_key_lock。なので、当該レコード以外の部分(中間Node等)でもロックがかかる可能性がある。 ALTER TABLE時にはテーブルロック(RE
パラメータ概要 global : MySQL Server起動時に一括設定。キャッシュ機能提供が多い。 Session : セッション毎必要時に設定。バッファ機能。できるだけ使われないようにクエリチューニングされることがポイント。 メモリ使用量 = glogal + session x 最大接続数(max_connections : デフォルト 100 + 1(SUPER権限専用)) InnoDBをメインに利用する場合、Innodb_buffer_pool : 50-80%程度は設定してもよい。 globalパラメータについて テーブルキャッシュ 概要については以下。 table_definition_cache(5.1.4以降) table_open_cache(5.1.4以前 table_cache) : テーブルをオープン状態にする。セッション毎に消費される。 table_open_
負荷測定ツールにOSSのApache JMeterというものがあります。かなり汎用的でつぶしがきくよいツールで、私もよく使います。JMeterについては以下の資料がよくまとまっています。 Apache JMeterで 負荷試験をしよう! で、負荷をかける場合にはそのサーバの限界性能がどこかを探るケースが存在しますが、クライアント側のスペック不足やシナリオの作成方法が原因で負荷をかけきれないというケースがあります。スペック不足はともかくとして、シナリオ作成の方法がまずいことで計測結果が不十分になることはかっこわるいので、私が気がついた対処方法をまとめます。 ループはループコントローラで書け! 負荷をかける場合に、ユーザ1 – ユーザ10000迄のデータに連続してアクセスしたいケースがあったとしましょう。JMeterでこれを実装するには「While Controller」と「ループコントローラ
つい先ほどMediaWikiのバージョンアップ作業を行ったのですが、以下のエラーが出ました。 Creating user_properties table...データベースクエリの構文エラーが発生しました。 最後に実行を試みたクエリは次の通りです: 関数 "DatabaseBase::sourceStream" 内 "CREATE TABLE `user_properties`( up_user int not null, up_property varbinary(32) not null, up_value blob ) TYPE=InnoDB " 何でだろうと調べたのですが、MySQL 5.5から TYPEを利用したエンジン指定ができなくなっています。 原文 : http://dev.mysql.com/doc/refman/5.5/en/create-table.html The
Struts2を利用してアプリを書いているのだが、なぜかメモリリークする・・・おかしい。このままだとまずいので、今回はEclipse 3.6(Helios)にプロファイラのEclipse Test and Performance Tools Platform(Eclipse TPTP)をインストールして、メモリリークの調査しました。 インストール 1. 「ヘルプ」=>「新規ソフトウェアのインストール」を選択 2. 「作業対象」を「すべての使用使用可能なサイト」を]選択し、「テストおよびパフォーマンス」を選択する。 3. 選択項目を確認する。 4. ライセンスに同意する 5. ソフトウェア更新作業後、Eclipseの再起動を促されるため、再起動実施。 プロファイル 1. プロファイル対象プログラムを選択し、右クリックから「プロファイル(P)」=>「プロファイルの構成(P)」を選択する。 2.
フリーのマインドマップ制作ツールに「FreeMIND」があります。本家ページはこちらみたいですね。Javaで動くフリーのツールです。 Windows 7 (64bit)環境で使うので、どうせなら64bit JREを使ってFreeMindを動かそうと思ったのですが、Freemind.exeをダブルクリックしてもうんともすんとも言いません。おかしい。 解決方法は、PATH環境変数に64bit JREをインストールしたディレクトリ(C:\Program Files\Java\jre6\bin;)を指定すること。気がつけば大したことないが、結構悩みました。 トラックバック コメントのRSSを取得する
我が家ではSolaris10(amd64)上でVirtualBOX 2.2.4を動かし、その上でWindowsを起動させていたのですが、このたび古い機材を集めてVMware vSphere 4 ESXi用のPCを組み立てました。 で、VirtualBOX上のVMをESXiに移行する方法です。具体的にはVMware vCenter Converterを利用しますが、そこに持って行くまでに何段かトラップがあります。手順の通りに実行しましょう! VirtualBox 2.2.4からのエクスポート手順 1. VirtualBOX 2.2.4上でVMを停止して、エクスポートします。仮想アプライアンス エクスポート ウィザードでエクスポート対象を選択します。今回のケースでは「XP1」というVMを選択します。 2. 仮想アプライアンスのエクスポート設定で各種パラメータを設定します。なお今回は未設定で進め
ご存知の通りMicrosoft Moneyの新規バージョン作成及びサポートが終了します。 今までMicrosoft Money Plus Editionを使ってきたのですが、OS再インストールを行うタイミングでマスターマネーへのデータ移行作業を行ったので、そのメモ。 マスターマネーのインストール まずマスターマネー6の体験版でインポート作業ができるかどうかを確かめたかったので、体験版をプラトのサイトからダウンロードしました。 http://www.plato-web.com/software/mm6/download.html ダウンロードしたバイナリを利用してさくっとインストール作業を実施。 初期データの作成 初回起動時には初期データを作成します。初期データなので中身はもちろん空っぽです。 アカウントの登録 マスターマネーではMicrosoft Moneyでいう「資産」や「負債」の考え方
昨日FreeBSD 8.0-RELEASEのアップグレードは難しいで記事を書きましたが、現実的なアップグレード方法を研究しました。 ずばり、portsのmisc/compat7xをインストールすることです。 # portsnap fetch update # freebsd-update upgrade -r 8.0-RELEASE # freebsd-update install # shutdown -r now # freebsd-update install # portinstall misc/compat7x # freebsd-update install # shutdown -r now これでばっちりです。とりあえずこれでバージョンアップ作業を進めていきたいと思います。 2件のコメント » [...] compat7xを利用すれば簡単にバージョンが上げられますね。詳細は
Javaについてあまり詳しくなかったので、フレームワークと言語勉強をかねてStruts2 + hibernateでお勉強用Webアプリを制作していますが、なれない言語のため正直手こずっています(C/Perlの方が簡単・・) でJavaといえば気になるのがスレッドセーフ(thread safe)。他言語でのスレッドセーフの作り方はわかるので、共用変数にステータスを持たせる等を行わなければスレッドセーフになることはわかるのですが、Struts2のサンプルプログラムを見ていて疑問に思ったことが。 import com.opensymphony.xwork2.ActionSupport; public class indexAction extends ActionSupport { public String execute() throws Exception { return "succes
このページを最初にブックマークしてみませんか?
『www.kinusati.net』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く