GitLab分支使用策略

  1. 创建一个主仓库dev,保持和线上同步,随时可被部署线上和fork一份最新代码;
  2. 每个成员fork一份dev分支代码;
  3. 在自己fork出来的代码里做开发工作;
  4. 开发完成后发出一个合并请求 pull request,等待被其他有合并权限的同事合并代码,合并代码需要进行code review,而不是简单的合并,并且要处理合并冲突的;
  5. 如果主仓库dev有新更新,需要先fetch,合并到自己的仓库里,若有冲突,那么处理先冲突。

Team开发相关工具

整理了下目前在Team中使用的工具:

Jar包版本管理:Maven

Maven中央库代理:Nexus

代码版本管理:Git (推荐阅读 ProGit)

Git管理系统:Stash(10人版)

Git客户端:SourceTree || SmartGit || Gitbox

开发工具:Eclipse || NetBeans || IDEA

Web服务器:Glassfishv3 || Tomcat

前端服务器:Nginx

数据库:MySQL (5.1 || 5.5)

MySQL管理工具:Sequel Pro || Navicat || MySQLWorkbench

持续集成:Hudson

Bug管理工具:禅道

知识共享:MediaWiki && Evernote

沟通工具:邮件 && QQ

FTP & SFTP : FileZilla

文件共享:Samba

虚拟机管理:Virtualbox

其他想到再补充

Starting MySQL.Manager of pid-file quit without updating fi

MySQL配置后启动发现这个问题,最后经过查询发现是下面这条配置导致的:

innodb_log_file_size

原因是ib_logfile导致的;

130202 04:12:57 mysqld_safe mysqld from pid file /var/lib/mysql/205.pid ended
130202 04:12:59 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
130202  4:12:59 [Warning] '--default-character-set' is deprecated and will be removed in a future release. Please use '--character-set-server' instead.
130202  4:12:59 [Note] Plugin 'FEDERATED' is disabled.
130202  4:12:59  InnoDB: Initializing buffer pool, size = 256.0M
130202  4:12:59  InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 16777216 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
130202  4:12:59 [ERROR] Plugin 'InnoDB' init function returned error.
130202  4:12:59 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130202  4:12:59 [ERROR] Unknown/unsupported table type: innodb
130202  4:12:59 [ERROR] Aborting

删除data下面的ib_logfile,然后再重启就可以了!

Ubuntu下安装Postfix,配置DKIM,SPR,SMTP服务

检查IP信用度

在自建邮件服务器之前,先检查下你所要使用的IP的信用度如何?如果你的IP已经在垃圾邮件联盟的黑名单里面,那么建议别用了,因为被当做垃圾邮件的概率会非常高。

可以点下面的链接查看:

http://cbl.abuseat.org/lookup.cgi
http://www.spamhaus.org/query/bl?ip=8.8.8.8
http://anti-spam.org.cn/

添加MX记录

比如我的域名是:quanlei.com, 我配置的邮件服务器是 mail.quanlei.com

那么你就需要在域名管理界面添加一条MX记录,key=quanlei.com, value=mail.quanlei.com

host -t mx quanlei.com

返回如下类似结果,表面MX生效:

quanlei.com mail is handled by 10 mail.quanlei.com.

继续阅读Ubuntu下安装Postfix,配置DKIM,SPR,SMTP服务

GlassFish server 4848 提示被占用,无法启动的问题处理

错误提示信息(中文):

有一个进程已占用管理端口 4848 — 可能是 GlassFish 服务器的另一个实例。
命令 start-domain 失败。

错误提示信息(英文):

There is a process already using the admin port 4848 — it probably is another instance of a GlassFish server.Command start-domain failed.

原因:hostname导致,一般是由于/etc/hosts中hostsname的设置导致
比如你的情况可能是类似下面的情况

127.0.0.1               localhost.localdomain localhost
xiaoquan

解决办法,修改为如下类似情况:

127.0.0.1               localhost.localdomain localhost
127.0.0.1               xiaoquan

Secure Admin must be enabled to access the DAS remotely.

在上篇文章中提到了Glassfish 3.1.2,在部署的过程中发现登陆控制面板,出现:

Secure Admin must be enabled to access the DAS remotely.

这个在之前的glassfish好像默认是打开的。

现在需要我们手动打开,例如:

asadmin --host 192.168.1.2 --port 4848 enable-secure-admin

对于的关闭方式:

asadmin --host 192.168.1.2 --port 4848 disable-secure-admin

ps: 更改如上设置,需要重启 glassfish

In-use connections equal max-pool-size and expired max-wait-time. Cannot allocate more connections.

最近在 glassfish 3.1上老遇到这个问题:

[#|2012-04-27T09:52:49.677+0800|INFO|glassfish3.1|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=54;_ThreadName=Thread-1;|taSource.getConnection(DataSource.java:117)
	at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
	... 158 more
Caused by: javax.resource.spi.ResourceAllocationException: Error in allocating a connection. Cause: In-use connections equal max-pool-size and expired max-wait-time. Cannot allocate more connections.
	at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:310)
	at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:190)
	at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:165)
	at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:160)
	at com.sun.gjc.spi.base.DataSource.getConnection(DataSource.java:110)
	... 160 more
Caused by: com.sun.appserv.connectors.internal.api.PoolingException: In-use connections equal max-pool-size and expired max-wait-time. Cannot allocate more connections.
	at com.sun.enterprise.resource.pool.ConnectionPool.getResource(ConnectionPool.java:418)
	at com.sun.enterprise.resource.pool.PoolManagerImpl.getResourceFromPool(PoolManagerImpl.java:242)
	at com.sun.enterprise.resource.pool.PoolManagerImpl.getResource(PoolManagerImpl.java:167)
	at com.sun.enterprise.connectors.ConnectionManagerImpl.getResource(ConnectionManagerImpl.java:341)
	at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:304)
	... 164 more
|#]

而这个问题貌似在glassfishv3上却没有,最后发现这篇文章:

http://www.java.net/forum/topic/glassfish/glassfish/glassfish-v3-jdbc-use-connections-equal-max-pool-size

也就是glassfish 3.0.1和glassfish 3.1可能都存在这样的问题

而从具体的修复情况看,已经在最新版的glassfish 3.1.2中修正,如遇上述问题,可以试试3.1.2