Fork me on GitHub
摘要: 上篇中提到解决的一个问题是mysql驱动报的:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure昨天最后的“解决方法”是增加Mysql的max_connections,当时就觉得其实根本没有解决问题,果然今天早上来一压问题又重现了:[2013-06-20 10:43:13.727][ERROR]执行存储过程{SEL_LocatlityRelationByName}出错:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException 阅读全文
posted @ 2013-06-20 19:22 zhanjindong 阅读(1732) 评论(0) 推荐(0) 编辑
摘要: 今天对之前写的servlet程序做了个简单的性能测试发现了一些问题,经过解决这些问题没有再重现,有些问题自己确切知道原因,有的则不太确定。1、配置文件读取问题项目中使用.properties作为配置文件,刚开始读取方法如下,使用的是Properties:public class ConfigHelper { private static Properties properties = new Properties(); /*** * * @param propertyName:属性的key * @param defaultVal:默认值 ... 阅读全文
posted @ 2013-06-19 19:39 zhanjindong 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 项目需要,使用Eclipse初次java开发,过程中遇到很多问题,有的问题可能很低级,这里做个简单的总结,怕忘记:1、Dyanamic Web Project工程引用普通java工程的类,可能会出现NoClassDefFoundError问题如图一个简单的java工程和一个servlet示例程序,servlet中调用了Test工程中Test类的静态方法test():很显然TestDW工程需要某种方式“引用”Test工程,刚开始开始我的方式是:右击TestDW(Dynamic Web Project)工程->选择Buid Path->Projects->添加Test工程:这种方 阅读全文
posted @ 2013-06-11 23:25 zhanjindong 阅读(1738) 评论(0) 推荐(0) 编辑
摘要: 问题用VS2010开发C++,一个控制台程序,在本机运行没有问题,但是拷贝到其他电脑运行提示如下错误(提示找不到MSVCP100D.dll):原因工程默认没有使用静态联编,没有把必须的DLL库一块编译进去导致的。解决右击工程→属性→配置属性→C/C++→代码生成:将运行库修改为多线程调试 (/MTd)然后重新生成,第一次可能会报很多错,忽略再编译一次就可以了。注意:从Debug模式改成Release模式该配置需要重新修改。 阅读全文
posted @ 2013-05-15 20:55 zhanjindong 阅读(7661) 评论(0) 推荐(0) 编辑
摘要: 安装fuse下载:wget http://nchc.dl.sourceforge.net/project/fuse/fuse-2.X/2.9.2/fuse-2.9.2.tar.gz安装:tar -zxvf tar -zxvf fuse-2.9.2.tar.gzcd fuse-2.9.2./configuremakemake installmodprobe fusefuse是什么看这里,ntfs-3g依赖它所以需要安装。安装ntfs-3g下载:wget http://tuxera.com/opensource/ntfs-3g_ntfsprogs-2013.1.13.tgz安装:tar -zxvf 阅读全文
posted @ 2013-05-09 22:35 zhanjindong 阅读(27865) 评论(0) 推荐(1) 编辑
摘要: 今天下午闲着没事尝试在自己的PC中的CentOS上装一个Code::Blocks,因为是Linux菜鸟折腾了一下午才基本算搞定但依然有疑惑:在网上各种谷哥度娘最后才发现还是官方的文档最靠谱:看这里。上面讲的比较详细,下面简单总结一下安装的步骤:wxWidgets安装先安装GTK+yum instal... 阅读全文
posted @ 2013-05-05 19:48 zhanjindong 阅读(14929) 评论(8) 推荐(2) 编辑
摘要: 毕业快一年了,边工作边学习,虽说对.net不算精通,但也算入门了,但一直以来对协变和逆变这个概念不是太了解,上学时候mark了一些文章,今天回过头看感觉更糊涂了,真验证本人一句口头禅“知道的越多,知道的越少”。看到最后实在乱了,就干脆装糊涂好了,本人也算半个阴谋论者,在编程语言这方面当我实在没法吃透一个语法的时候,我就归咎于编译器这个幕后黑手。我们看下面两个类Derived派生自Base:public class Base{}public class Derived:Base{}我们都这知道下面这两行代码,第一行能编译通过,第二行则无法编译通过:Base b=new Derived();Der 阅读全文
posted @ 2013-04-13 22:26 zhanjindong 阅读(4272) 评论(3) 推荐(3) 编辑
摘要: 插入、查询和更新 插入:MongoDB会根据片键和conifg中的信息写入到指定的分片上。 读取:以下内容摘抄自《深入学习MongoDB》 关于读取:上一节故障恢复中已经有所验证。 更新:如果要更新单个文档一定要在片键中使用片键(update的第一个参数)。我们现在OSSP10.bizuser(已经 阅读全文
posted @ 2013-04-12 21:49 zhanjindong 阅读(22294) 评论(0) 推荐(4) 编辑
摘要: 分片逻辑图上节搭建的分片集群从逻辑上看如下图所示:片:可以普通的mongod进程,也可以是副本集。但是即使一片内有多台服务器,也只能有一个主服务器,其他的服务器保存相同的数据。mongos路由进程:它路由所有请求,然后将结果聚合。它不保存存储数据或配置信息。配置服务器:存储集群的配置信息。整个分布式的集群通过mongos对客户端提供了一个透明统一的接口,客户端不需要关系具体的分片细节,所有分片的动作都是自动执行的,那是如何做到透明和自动的。切分数据上节中建立好集群后,默认的是不会将存储的每条数据进行分片处理,需要在数据库和集合的粒度上都开启分片功能。开启test库的分片功能:1. ./b... 阅读全文
posted @ 2013-04-11 21:07 zhanjindong 阅读(37100) 评论(1) 推荐(6) 编辑
摘要: 环境准备Linux环境主机OS备注192.168.32.13 CentOS6.3 64位 普通PC192.168.71.43 CentOS6.2 64位 服务器,NUMA CPU架构MongoDB版本:mongodb-linux-x86_64-2.4.1,下载地址:www.mongodb.org/downloads.MongoDB安装:分别在两台机器上安装好mongodb 2.4.1,安装路径都为/url/local/mongodb-2.4.1/cd /usr/local/src/wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64 阅读全文
posted @ 2013-04-10 21:52 zhanjindong 阅读(27993) 评论(1) 推荐(4) 编辑
摘要: 出处:http://www.codeproject.com/Articles/32113/Understanding-SynchronizationContext-Part-IISynchronizationContextMSND解释:SynchronizationContext类是一个基类,可提供不带同步的自由线程上下文。此类实现的同步模型的目的是使公共语言运行时内部的异步/同步操作能够针对不同的异步模型采取正确的行为。此模型还简化了托管应用程序为在不同的同步环境下正常工作而必须遵循的一些要求。同步模型的提供程序可以扩展此类并为这些方法提供自己的实现。一个我们所熟悉的Synchronizat 阅读全文
posted @ 2013-03-24 13:17 zhanjindong 阅读(364) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace SynchronizationContext{ internal interface IQueueReader<T> : IDisposable { T Dequeue(); void ReleaseReader(); } internal interface IQueueWriter<T> : IDisposabl... 阅读全文
posted @ 2013-03-24 12:10 zhanjindong 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 一直在实际开发中都有用到yield return,但也一直只停留在“用”的层面上,可谓一知半解。今天下班回来自己查证思考了半天,本着自己的原则一切从简提炼了一下几点(正确与否有待进一步学习):IEnumerable是对IEnumerator的封装,以支持foreach语法糖。IEnumerable<T>和IEnumerator<T>分别继承自IEnumerable和IEnumerator以提供强类型支持(即状态机中的“现态”是强类型)。yield return是编译器对IEnumerator和IEnumerable实现的语法糖。yield return 表现是实现IEn 阅读全文
posted @ 2013-03-21 23:49 zhanjindong 阅读(947) 评论(0) 推荐(0) 编辑
摘要: 我相信很多人都跟我一样被某些书害的不浅,在C语言中一直还把指针跟数组名混为一谈。其实它们跟本就是两样的东西,指针就是指针,数组就是数组,网上也有很多大牛作过很多非常深入的讨论,但是个人感觉有时候把问题想得太复杂了反而不好,尤其是对于新手,因为我们新手很难搞懂编译器背着我们到底都干了些什么。我们有时候应该透过现象看本质,但有时候也不要太钻牛角尖,一口吃不出个胖子,必要时“难得糊涂”,站在抽象的角度去看事情,很多所谓的“本质”归根到底就是“规则”,让我们返朴归真看看标准是怎么说的,对于新手关于数组和指针的区别和以及什么时候“相同”只要记住《c专家编程》中提到的三个标准和三个例外就可以了:规则1.& 阅读全文
posted @ 2013-02-15 19:34 zhanjindong 阅读(4182) 评论(1) 推荐(0) 编辑
摘要: 我们都知道C++传递参数有三种形式,传值,传指针和传引用,而一般C#中只有传值和传引用,但无论是在C#中还是C++参数传递实际上只有两种:值传递和引用传递,值传递就是将对象拷贝一份到栈上,引用传递则传递的就是对象本身。在弄清楚值传递和引用传递之前一定要弄清楚引用和指针的区别,指针的概念我想很容易理解,因为在C++中它是实实在在占据内存的一个东东,但是“引用”一词通常容易让初学者混淆,个人认为引用更多是语义上的东西,在C++中把引用就看成是变量本身,调用方法的时候无论传递的是值还是指针,其实传递的都是拷贝,而传递引用的时候即所谓的引用传递传递的就是实参本身。#include "stda 阅读全文
posted @ 2013-01-13 15:51 zhanjindong 阅读(4875) 评论(0) 推荐(0) 编辑
TOP