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;