http://blog.csdn.net/ozwarld/article/details/7735915
IBM MQ 6.0中設置兩個隊列,(遠程隊列、通道之類都不設置)。
隊列管理器是XIR_QM_1502
隊列名稱是ESBREQ
IP地址是10.23.117.134(遠程的一臺電腦,跟我的電腦不在一個局域網內)
端口1414
CCSID 1208
MQ配置可以參考這個,有配圖http://wenku.baidu.com/view/06d108d0360cba1aa811daa3.html
程序如下,發送線程兩個,接收線程一個。接收完畢后就結束。
運行結果如下:
進入線程Sender2
進入線程Sender
Sender2 Connecting to queue manager: XIR_QM_1502
Sender Connecting to queue manager: XIR_QM_1502
Sender2 Accessing queue: ESBREQ
Sender2 Sending a message...
Sender Accessing queue: ESBREQ
Sender Sending a message...
Sender2 putting the message... 1
Sender putting the message... 1
Sender2 putting the message... 2
Sender putting the message... 2
Sender2 putting the message... 3
Sender putting the message... 3
Sender2 putting the message... 4
Sender putting the message... 4
Sender2 Done!
==========
Sender Done!
==========
進入線程Receiver
Receiver Connecting to queue manager: XIR_QM_1502
Receiver Accessing queue: ESBREQ
... Receiver getting the message back again
ID: MSGID Num: 1 Type: 1 Flag: 0
The message is: Salemetsizbe Yerasel 1
ID: MSGID Num: 1 Type: 1 Flag: 0
The message is: Salemetsizbe Yerasel 1
ID: MSGID Num: 1 Type: 1 Flag: 0
The message is: Salemetsizbe Yerasel 2
ID: MSGID Num: 1 Type: 1 Flag: 0
The message is: Salemetsizbe Yerasel 2
ID: MSGID Num: 1 Type: 1 Flag: 0
The message is: Salemetsizbe Yerasel 3
ID: MSGID Num: 1 Type: 1 Flag: 0
The message is: Salemetsizbe Yerasel 3
ID: MSGID Num: 1 Type: 1 Flag: 0
The message is: Salemetsizbe Yerasel 4
ID: MSGID Num: 1 Type: 1 Flag: 0
The message is: Salemetsizbe Yerasel 4
Receiver Closing the queue
Receiver Disconnecting from the Queue Manager
Receiver Done!
說明:
操作系統:CentOS 5.x 64位
已安裝php版本:php-5.4.4
已安裝php路徑:/usr/local/php
實現目的:
在不影響網站訪問的情況下,重新編譯php,增加對mcrypt擴展的支持
具體操作:
一、下載軟件包
1、下載php(版本要與系統安裝的一致)
http://museum.php.net/php5/php-5.4.4.tar.gz
2、下載libmcrypt(安裝mcrypt需要此軟件包)
http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
3、下載mhash(安裝mcrypt需要此軟件包)
https://acelnmp.googlecode.com/files/mhash-0.9.9.9.tar.gz
4、下載mcrypt
https://lcmp.googlecode.com/files/mcrypt-2.6.8.tar.gz
以上軟件包下載之后,上傳到/usr/local/src目錄
二、安裝軟件包
1、安裝libmcrypt
cd /usr/local/src #進入軟件包存放目錄
tar zxvf libmcrypt-2.5.8.tar.gz #解壓
cd libmcrypt-2.5.8 #進入安裝目錄
./configure #配置
make #編譯
make install #安裝
2、安裝mhash
cd /usr/local/src
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make
make install
3、安裝mcrypt
cd /usr/local/src
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
ln -s /usr/local/bin/libmcrypt_config /usr/bin/libmcrypt_config #添加軟連接
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH #添加環境變量
./configure
make
make install
三、重新編譯php
1、查看系統之前安裝的php編譯參數
系統運維 www.osyunwei.com 溫馨提醒:qihang01原創內容 版權所有,轉載請注明出處及原文鏈接
/usr/local/php/bin/php -i |grep configure #查看php編譯參數,記錄下編譯參數,后面會用到
2、安裝php
cd /usr/local/src
tar zxvf php-5.4.4.tar.gz
cd php-5.4.4
'./configure' '--prefix=/usr/local/php' '--enable-mbstring=all' '--with-config-file-path=/usr/local/php/etc' '--with-zlib' '--with-mysql=/usr/local/mysql-5.1.38/' '--with-gd' '--with-mysqli=/usr/local/mysql-5.1.38/bin/mysql_config' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--enable-fpm' '--enable-soap' '--with-freetype-dir=/usr/lib64' '--with-iconv=/usr/local' '--with-curl' '--with-mcrypt'
#在之前的編譯參數后面增加'--with-mcrypt' 回車
make #編譯
make install #安裝
/usr/local/src/php-5.4.4/sapi/fpm/init.d.php-fpm reload #重新加載php-fpm
四、測試mcrypt擴展是否已安裝成功
在網站目錄下新建一個info.php測試頁面,寫上下面代碼,保存
<?php
phpinfo();
?>
在瀏覽器中打開info.php 會看到如下的信息


說明mcrypt擴展已經安裝成功
至此,Linux下php安裝mcrypt擴展完成。
RedHat Linux6.0安裝Oracle 11g單機
Ø 第一步配置YUM倉庫
1、 掛載光盤
mount /dev/cdrom /media
2、 復制光盤里頭的rpm包到rpm包源目錄
cp –rf /media/Packages /mnt (也可以直接通過桌面COPY)
(這里可以取消掛在了 umount /dev/cdrom,順便刪除media目錄 rm –rf /media)
3、 進入你自己創建的YUM倉庫,并安裝createrepo工具
cd /mnt/Packages
rpm –ivh createrepo-0.4.11-3.e15.noarch.rpm(可以在桌面手動雙擊安裝)
4、 重建倉庫信息配置文件
createrepo /mnt (這個配置文件在 /mnt/repodata/下)
5、 創建YUM配置文件
cd /etc/yum.repos.d/
touch yumredhat.repo
vim yumredhat.repo
添加如下信息:
[rhel6]
name=Red Hat Enterprise Linux6
baseurl=file:///mnt
enabled=1
gpgcheck=0
gpgfile=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
6、測試
yum list
yum clear all
Ø 第二步Oracle安裝前系統參數的配置以及包的安裝
(安裝Oracle必須關閉掉防火墻以及selinux)
service iptables stop
vim /etc/selinux/config
SELINUX=disabled
========================
想辦法把下面2個文件傳進 Linux 操作系統里面去
linux_11gR2_database_1of2.zip
linux_11gR2_database_2of2.zip
要借助一個軟件 FileZilla_3.3.3_win32-setup.exe
上傳完畢后, 使用 unzip 命令解壓剛才上傳的2個文件, 命令格式如下:
unzip 文件名
======================================
檢查相關的開發工具和一些包
檢查命令格式如下:
rpm -qa | grep 名字
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
#elfutils-libelf-devel-static-0.125 (RedHat Linux6.0中無此包,CentOS中有)
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.5
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2
libstdc++-devel-4.1.2
make-3.81
numactl-devel-0.9.8.i386
sysstat-7.0.2
unixODBC-2.2.11
unixODBC-devel-2.2.11
======================================
利用配置好的YUM倉庫安裝包
yum install (包名).rpm
創建用戶以及修改配置參數
groupadd oinstall
groupadd dba
mkdir -p /u01/oracle //路徑可修改,看實際的生產環節
添加一個oracle用戶, 根目錄是 /u01/oracle, 主的組是 oinstall 副的組是dba
useradd -g oinstall -G dba -d /u01/oracle oracle
cp /etc/skel/.bash_profile /u01/oracle
cp /etc/skel/.bashrc /u01/oracle
cp /etc/skel/.bash_logout /u01/oracle
為oracle用戶設置密碼 123456 /111111
passwd oracle
/]#ls -l
/]#chown -R oracle:oinstall u01
/]#ls -l
檢查 nobody 是否存在 , id nobody
缺省存在的。如果不存在 # /usr/sbin/useradd -g nobody
========================================
vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
-------------
vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
------------
vi /etc/pam.d/login
session required pam_limits.so
=================================================
設置oracle 用戶環境變量
su - oracle
pwd
ls -la
---------------
vi .bash_profile
ORACLE_BASE=/u01
ORACLE_HOME=$ORACLE_BASE/oracle
ORACLE_SID=ORCLTEST
PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
===================================
mv database /u01/
cd /u01
ls -l
chown -R oracle:oinstall database/
===========
Ø 第三步正式開始安裝.Oracle.11g.r2(圖形界面安裝)
使用oracle賬號 登陸圖形界面 進行安裝
運行終端 Terminal
cd /u01/database
./runInstaller
運行./runInstaller【INS-06101】IP address of localhost could not be determined
Are you sure you want to continue?
這里需要指定一個IP與localhost
Vi /etc/hosts
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
10.110.12.132 ORCLDEV ORCLDEV.ELLINGTON
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
運行./runInstaller出現中文漢字為方框
在運行runinstaller之前,
export LANG=C
export LC_ALL=C
Installation Optiong
install database software only
Grid Options
Single instance database installation
Product Languages
English
Database Edition
Enterprise Edition (3.95)
Installation Location
Oracle Base: /u01
Software Loacation: /u01/oracle
提示: yes
Create Inventory
mkdir /oraInventory
chown -R oracle:oinstall oraInventory
Operating System Groups
Next
Prerequis ite Checks
Ignore All
Summary
Finish
Install Product
安裝完畢, 提示執行 2個腳本
//root用戶執行
/oraInventory/orainstRoot.sh
/u01/oracle/root.sh
直接按回車, 缺省值就可以
Finish
The installation of Oracle Database was successful
====================================
上面只是安裝了軟件, 數據庫沒有創建, 還有配置 監聽器 Listener
netca
一直默認下一步 , 呵呵, 最后 Finish
ps -ef 可以查看Listener是否配置成功
-----------
dbca
一直 Next, Global Database Name 和 SID 都是輸入 wilson
選擇 User the Same.....All Accounts
密碼: 123456
選擇 Sample Schemas
Memory 內存分配,默認就可以了
Character Sets 選擇 中文GBK Use Unicode(AL32UTF8)
然后一直 Next , 到最后 Finish
彈出一個 Confirmation , 點擊 OK 就可以了, 然后自動進行安裝
安裝到目錄 /u01/oradata/wilson
/u01/等等。。。 會發現多了很多文件。
[oracle@localhost ~]$ sqlplus /nolog
//中文字符顯示?號解決方法
編輯并運行.bash_profile
export NLS_LANG=AMERICAN_AMERICA.UTF8
(如果是GBK
export NLS_LANG=american_america.ZHS16GBK)
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
注銷后生效
這樣再重新進入sqlplus
已經不會是亂碼。
SQL*Plus: Release 11.2.0.1.0 Production on Fri Jun 25 15:05:54 2010
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected to an idle instance.
出現錯誤
SQL> startup
查看當前用戶的表名
SQL> select table_name from user_tables;
SQL> create table testUser( id integer,name char(10));
Table created.
SQL> insert into testUser values(0,'Jack');
1 row created.
SQL> commit;
Commit complete.
SQL> select * from testUser;
ID NAME
---------- ----------
0 Jack
關閉數據庫
SQL> shutdown immediate
SQL> quit
http://www.itokit.com/2012/1018/74794.html
MySQL的max_connections參數用來設置最大連接(用戶)數。每個連接
MySQL的用戶均算作一個連接,max_connections的默認值為100。本文將講解此參數的詳細作用與性能影響。
max_connections配置參數的相關的特性
1、MySQL無論如何都會保留一個用于管理員(SUPER)登陸的連接,用于管理員連接數據庫進行維護操作,即使當前連接數已經達到了max_connections。因此MySQL的實際最大可連接數為max_connections+1;
2、這個參數實際起作用的最大值(實際最大可連接數)為16384,即該參數最大值不能超過16384,即使超過也以16384為準;
3、增加max_connections參數的值,不會占用太多系統資源。系統資源(CPU、內存)的占用主要取決于查詢的密度、效率等;
4、該參數設置過小的最明顯特征是出現“Too many connections”錯誤;
如何去調整max_connections參數的值(有以下三個方法可調整)
調整此參數的方法有幾種,既可以在編譯的時候設置,也可以在MySQL配置文件 my.cnf 中設置,也可以直接使用命令調整并立即生效。
1、在編譯的時候設置默認最大連接數
打開MySQL的源碼,進入sql目錄,修改mysqld.cc文件:
C/C++ Code復制內容到剪貼板
- {“max_connections”, OPT_MAX_CONNECTIONS,
- “The number of simultaneous clients allowed.”, (gptr*) &max_connections,
- (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1,
- 0},
紅色的“100”即為該參數的默認值,修改為想要的數值,存盤退出。然后執行
C/C++ Code復制內容到剪貼板
- ./configure;make;make install
重新編譯安裝MySQL;注意,由于編譯安裝且修改了MySQL源碼,此操作最好在安裝MySQL之前進行;
2、在配置文件my.cnf中設置max_connections的值
打開MySQL配置文件my.cnf
- [root@www ~]# vi /etc/my.cnf
找到max_connections一行,修改為(如果沒有,則自己添加),
max_connections = 1000
上面的1000即該參數的值。
3、實時(臨時)修改此參數的值
首先登陸mysql,執行如下命令:
C/C++ Code復制內容到剪貼板
- [root@www ~]# mysql -uroot -p
然后輸入MySQL Root的密碼。
查看當前的Max_connections參數值:
- mysql> SELECT @@MAX_CONNECTIONS AS 'Max Connections';
設置該參數的值:
- mysql> set GLOBAL max_connections=1000;
(注意上面命令的大小寫)
修改完成后實時生效,無需重啟MySQL。
mysql的max_connections的總結
總體來說,該參數在服務器資源夠用的情況下應該盡量設置大,以滿足多個客戶端同時連接的需求。否則將會出現類似“Too many connections”的錯誤。
SPComm的一點小訣竅 spcomm的問題導致數據丟失
2010-01-08 09:50:51| 分類: 串口 |字號 訂閱
最近幾天完成了BiasDAC的程序編寫。調試的過程還算比較順利,除了幾個有點bt的小問題。其中一個困擾了我兩三天的時間,今天上午終于將其解決。
由于BiasDAC是用RS232 Serial Port通信的,延用之前的程序,使用了Delphi的SPComm控件。在之前的使用中,SPComm控件一直工作正常,使用的是一般的string進行消息的傳遞。
而BiasDAC由于通信協議的限制,消息的發送使用的是hex方式,會用到從0x00到0xFF所有的這些字符。在調試中發現,發送0x11和0x13之后,SPComm的工作就會不正常。
首先是0x11發送之后,返回的0x11消息會被忽略;其次0x13發送之后,只能返回很有限的消息,而且似乎Serial Port就此關閉,如果再發送消息,就會造成Serial Port失去響應,只能通過重新啟動計算機才能恢復。
后來上網上查詢,原來不能正常處理0x11和0x13的問題早就存在,原因是SPComm空間中兩個屬性的存在。
OutX_XonXOffFlow/InX_XonXoffFlow:這個屬性是指進行發送/接收時的軟件握手標志,兩個握手信號之間的數據被認為是通訊數據,收到握手信號后,通訊就中止了。
FOutx_XonXoffFlow := True;
FInx_XonXoffFlow := True;
默認的初始化中,這兩個屬性是默認開啟的。
XOffChar/XOnChar:這是指握手的字節,默認的初始中,有
FXonChar := chr($11);
FXoffChar := chr($13);
至此,真相大白。0x11,0x13被占用為通訊握手信號,自然不會得到正確的處理。
問題找到了,解決也很容易。只需要在Comm的初始化中,自己定義
Comm.Inx_XonXoffFlow:=False;
Comm.Outx_XonXoffFlow:=False;
關閉軟件握手功能即可。在一般通訊中,硬件已經具備了握手功能,所以也不會影響到正常的Comm通訊。
在通達OA2009中,“數據選擇控件”目前只有自帶的三種類型數據。
現增加第三方的數據來源,以增強其功能。
一、
MYOA\webroot\general\system\workflow\flow_form\cool_form\data\config.php在Config.php 增加
'TX_USERS' => array("NAME" => "同享系統用戶" , "CONTENT" => array("EMP_NAME" => "工號姓名",
"DEPT_NAME" => "部門","ZHIWEI" => "職位","ZHIWU" => "職務","ZHIJI" => "職級"))
二、
MYOA\webroot\general\workflow\list\input_form
增加連接MSSQL-SERVER的輸出
if ($dataSrc == 'TX_USERS') {
if($act=="count")
$query = "select count(*) from OA_Employee_View where 1=1";
else
$query = "select top 10 $dataField from OA_Employee_View where 1=1";
if(strstr($dataQuery,"1,"))
{
$array1 = explode(",",$dataQuery);
$array2 = explode(",",$dataField);
$array3 = explode(",",$dataFieldName);
foreach($array1 as $k => $v)
{
if($v==1)
{
$name = $array2[$k];
$value = $$name;
if($value!="")
$query .= " and $name like '%$value%'";
}
}
}
$txconn=mssql_connect($MSSQL_TX_SERVER,$MSSQL_TX_USER,$MSSQL_TX_PASS);
mssql_select_db($MSSQL_TX_DB,$txconn);
if($act=="count")
{
$cursor = mssql_query($query);
if($ROW=mssql_fetch_array($cursor))
$COUNT=$ROW[0];
echo $COUNT;
exit;
}
$cursor = mssql_query($query);
$COUNT=0;
$dataField_arr = explode(",",$dataField);
$dataFieldName_arr = explode(",",$dataFieldName);
while($ROW=mssql_fetch_array($cursor))
{
$COUNT++;
if($COUNT%2==1)
$TableLine="TableLine1";
else
$TableLine="TableLine2";
foreach($dataField_arr as $k=> $v)
{
if($v=="") continue;
if($COUNT==1)
{
if($k==0)
$thead.='<table class="TableList" align="center" width="90%"><tr class="TableHeader">';
$thead.='<td nowrap align="center">'.$dataFieldName_arr[$k].'</td>';
}
if($k==0)
$tbody.='<tr class="'.$TableLine.'">';
$tbody.='<td nowrap align="center">'.$ROW[$v].'</td>';
}
if($COUNT==1) $thead.='<td nowrap align="center">操作</td></tr>';
$tbody.='<td nowrap align="center"> <a href="#" class="orgAdd" onclick="addData(this)">添加</a></td></tr>';
}
$tbody.="</table>";
echo $thead.$tbody;
一、增加流程定義時可以選擇項目
MYOA\webroot\general\system\workflow\flow_type\flow_design\view_list\edit.php
794行
<option value="11" <? if($AUTO_TYPE=="11")echo "selected";?>>按表單字段選擇的直屬上司</option>
\\10.110.2.210\d$\MYOA\webroot\general\workflow\list\turn\condition.php
765行處增加
}elseif($AUTO_TYPE==11) //根據表單字段的主屬上司來處理
{
if(is_numeric($AUTO_USER))
{
$query3 = "SELECT ITEM_DATA from FLOW_RUN_DATA where RUN_ID='$RUN_ID' AND ITEM_ID='$AUTO_USER'";
$cursor3= exequery($connection,$query3);
if($ROW=mysql_fetch_array($cursor3))
$ITEM_DATA = $ROW["ITEM_DATA"];
$APPLY_USER_ID = substr($ITEM_DATA,strpos($ITEM_DATA,"_")-1);
//根據前一節點的直屬上司
$query = "select EMP_MANAGECODE from user where user_id ='$APPLY_USER_ID'";
$cursor= exequery($connection,$query);
if($ROW=mysql_fetch_array($cursor))
{
$USER_ID=$ROW["EMP_MANAGECODE"];
$query1 = "SELECT * from USER where USER_ID='$USER_ID'";
$cursor1= exequery($connection,$query1);
if($ROW=mysql_fetch_array($cursor1))
{
$PRCS_NEW_USER_ID=$USER_ID;
$PRCS_NEW_USER_NAME=$ROW["USER_NAME"];
$PRCS_NEW_DEPT_ID=$ROW["DEPT_ID"];
$PRCS_NEW_USER_PRIV=$ROW["USER_PRIV"];
$PRCS_NEW_USER_PRIV_OTHER=$ROW["USER_PRIV_OTHER"];
}
}
$PRCS_OP_USER=$PRCS_NEW_USER_ID;
$PRCS_OP_USER_NAME=$PRCS_NEW_USER_NAME;
$PRCS_USER_AUTO=$PRCS_NEW_USER_ID.",";
$PRCS_USER_NAME=$PRCS_NEW_USER_NAME.",";
/*//檢查該發起人是否有經辦權限
if($PRCS_DEPT=="ALL_DEPT"||find_id($PRCS_USER,$PRCS_NEW_USER_ID)||find_id($PRCS_DEPT,$PRCS_NEW_DEPT_ID)||find_id($PRCS_PRIV,$PRCS_NEW_USER_PRIV)||priv_other($PRCS_PRIV,$PRCS_NEW_USER_PRIV_OTHER))
{
$PRCS_OP_USER=$PRCS_NEW_USER_ID;
$PRCS_OP_USER_NAME=$PRCS_NEW_USER_NAME;
$PRCS_USER_AUTO=$PRCS_NEW_USER_ID.",";
$PRCS_USER_NAME=$PRCS_NEW_USER_NAME.",";
}*/
}
}
3.在流程定義處保存的地方也要修改
MYOA\webroot\general\system\workflow\flow_type\flow_design\view_list\update.php
的66修改成:
if($AUTO_TYPE==7 || $AUTO_TYPE==11)