CMD命令查看端口被什么程序占用

在安装Nginx for windows  时,每次启动都会如下信息:

2011/08/25 09:39:53 [emerg] 948#972: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)

意思是80端口被占用,自己并没有开启特别的软件,端口肯定被我不知道的程序占用了,于是上网查了一下,下面的方式更方便。

    在windows命令行窗口下执行:

运行–cmd

C:\>netstat -aon|findstr "8080"
TCP     127.0.0.1:80         0.0.0.0:0               LISTENING       2448
端口被进程号为2448的进程占用,继续执行下面命令:
C:\>tasklist|findstr "2448"
thread.exe                     2016 Console                 0     16,064 K
很清楚,thread占用了你的端口,Kill it
如果第二步查不到,那就开任务管理器,进程—查看—选择列—pid(进程位标识符)打个勾就可以了
看哪个进程是2448,然后杀之即可。

 

原来是:Msdepsvc.exe 进程

What is Msdepsvc.exe

Msdepsvc.exe with description Web Deployment Agent Service is a process file from company Microsoft Corporation belonging to product Microsoft IIS Extensions.
The file is digitally signed from Microsoft Corporation – Microsoft Time-Stamp Service
We do not recommend removing digitally signed files from Microsoft Corporation

所以请注意安装了IIS7的朋友要特别注意这个Msdepsvc.exe他默认开启的占用了80端口

 强制终止进程:

      CMD命令:taskkill /F /pid 1408

 

 

HTTP服务器 nginx for windows下载 详细安装与配置

nginx for windo

Nginx内容导航

本文内容大纲如下
一、nginx的特性和简介
二、nginx for windows的下载与安装
三、nginx处理静态资源的配置
四、nginx 反向代理设置
五、nginx 常见错误

引言:为什么要使用nginx

目前很多大型网站都使用了nginx,新浪、网易、QQ等都使用了nginx,说明nginx的稳定性和性能还是非常不错的。这主要是因tomcat处理静态资源的速度比较慢,所以首先想到的就是把所有静态资源(JS,CSS,image,swf),提到单独的服务器,用更加快速的HTTP服务器,这里选择了nginx了,nginx相比apache,更加轻量级,配置更加简单,而且nginx不仅仅是高性能的HTTP服务器,还是高性能的反向代理服务器。

一、nginx的特性和简介

  nginx简介
Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用。  其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。

  nginx的特性
1.目前官方 Nginx 并不支持Windows,您只能在包括Linux,UNIX,BSD系统下安装和使用
2.Nginx 本身只是一个HTTP和反向代理服务器,它无法像Apache一样通过安装各种模块来支持不同的页面脚本,例如PHP、CGI等
3.Nginx 支持简单的负载均衡和容错
4.支持作为基本 HTTP 服务器的功能,例如日志、压缩、Byte ranges、Chunked responses、SSL、虚拟主机等等,应有尽有

二、nginx for windows的下载与安装

–下载: 国内几大软件站都有已经封装好的nginx下载地址,管网的nginx由于没有封装,所以安装起来有点儿麻烦,推荐下载地址:

CSDN下载  51CTO下载   程序员下载  ITeye下载

 –安装:一直点下一步,操作非常简单

三、nginx处理静态资源的配置

nginx的配置到,nginx的配置文件目录:nginx/conf/nginx.conf

下面是各个配置文件的参数解释:

#启动GZIP压缩CSS和JS
gzip on;
# 压缩级别 1-9,默认是1,级别越高压缩率越大,当然压缩时间也就越长
gzip_comp_level 4;
# 压缩类型
gzip_types text/css application/x-javascript;

# 定义静态资源访问的服务,对应的域名:res.bywei.cn
server {
listen 80;
server_name res.bywei.cn;

# 开启服务器读取文件的缓存,
open_file_cache max=200 inactive=2h;
open_file_cache_valid 3h;
open_file_cache_errors off;

charset utf-8;

# 判断如果是图片或swf,客户端缓存5天
location ~* ^.+.(ico|gif|bmp|jpg|jpeg|png|swf)$ {
root /usr/local/resource/;
access_log off;
index index.html index.htm;
expires 5d;
}

# 因JS,CSS改动比较频繁,客户端缓存8小时
location ~* ^.+.(js|css)$ {
root /usr/local/resource/;
access_log off;
index index.html index.htm;
expires 8h;
}

# 其他静态资源
location / {
root /usr/local/resource;
access_log off;
expires 8h;
}
}

四、nginx 反向代理设置

# 反向代理服务,绑定域名www.bywei.cn
server {
listen 80;
server_name www.bywei.cn;

charset utf-8;

# BBS使用Discuz!
# 因反向代理为了提高性能,一部分http头部信息不会转发给后台的服务器,
# 使用proxy_pass_header 和 proxy_set_header 把有需要的http头部信息转发给后台服务器
location ^~ /bbs/ {
root html;
access_log off;
index index.php;
# 转发host的信息,如果不设置host,在后台使用request.getServerName()取到的域名不是www.bywei.cn,而是127.0.0.1
proxy_set_header Host $host;
# 因Discuz! 为了安全,需要获取客户端User-Agent来判断每次POST数据是否跟第一次请求来自同1个浏览器,
# 如果不转发User-Agent,Discuz! 提交数据就会报"您的请求来路不正确,无法提交"的错误
proxy_pass_header User-Agent;
proxy_pass http://127.0.0.1:8081;
}

# 其他请求转发给tomcat
location / {
root html;
access_log off;
index index.jsp;
proxy_pass http://127.0.0.1:8080;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

 

五、nginx 常见错误

1. nginx启动时: bind() to 0.0.0.0:80 failed (98: Address already in use)  这个错误是80端口别占用,可以检查一下是否有程序在占用这个端口,nginx的默认端口

2. 配置php – fpm_children_bury() fpm_children_make()错误

php-fpm的日志情况:
Aug 06 16:18:48.813346 [WARNING] fpm_children_bury(), line 215: child 15381 (pool default) exited on signal 9 SIGKILL after 19293.913994 seconds from start
Aug 06 16:18:48.816439 [NOTICE] fpm_children_make(), line 352: child 26844 (pool default) started
解决:
修改php-fpm.conf的配置,将max_requests和max_children调整为合适的值。
<value name="max_requests">102400</value>
<value name="max_children">100</value>

3.“upstream timed out”的解决办法

I found answer on my posting on nginx forum – http://forum.nginx.org/read.php?2,127854

The answer is in my case was to set:

request_terminate_timeout=30s

in php-fpm config.

Note, you can use values other than 30s also.

I used it to match my value in main php.ini file which is:

max_execution_time = 30

其它解决办法:

504 Gateway Time-out问题常见于使用nginx作为web server的服务器的网站, 我遇到这个问题是在升级discuz论坛的时候遇到的。一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out
现在的网站, 尤其某些论坛有大量的回复和很多内容的, 一个页面甚至有几百K,默认的fastcgi进程响应的缓冲区是8K, 我们可以设置大点在nginx.conf里,

详解ORACLE锁的教程

1.什么是ORACLE锁
数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁就是实现数据库并发控制的一个非常重要的技术。

2.ORACLE锁的类型
在 数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它修改。加了共享锁的数据对象可以被其他事务读取,但不能被删除和修改。数据库利用这 两种基本的锁类型来对数据库的事务进行并发控制。

?
根据保护的对象不同,Oracle数据库锁可以分为以下几大类:DML锁 (data locks,数据锁),用于保护数据的完整性;DDL锁(dictionary locks,字典锁),用于保护数据库对象的结构,如表、索引等的结构定义;内部锁和闩(internal locks and latches),保护 数据库的内部结构。

在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁,TX锁称为事务锁或行级锁。?
当 Oracle执行DML语句时,系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后,系统再自动申请TX类型的锁,并将实际锁定的数据行的锁标志 位进行置位。这样在事务加锁前检查TX锁相容性时就不用再逐行检查锁标志,而只需检查TM锁模式的相容性即可,大大提高了系统的效率。TM锁包括了SS、 SX、S、X 等多种模式,在数据库中用0-6来表示。不同的SQL操作产生不同类型的TM锁。

TM锁的类型 0 none? 1 NULL 空 Select? 2 SS(Row-S) 行级共享锁,其他对象? 只能查询这些数据行 Select for update、Lock for?update、
Lock row share? 3 SX(Row-X) 行级排它锁,? 在提交前不允许做DML操作 Insert、Update、? Delete、Lock row share? 4 S(Share) 共享锁 Create index、Lock share? 5 SSX(S/Row-X) 共享行级排它锁 Lock share row exclusive? 6 X(Exclusive) 排它锁 Alter table、Drop able、Drop index、Truncate table 、Lock exclusive

Oracle举例 

 

J2EE开发部署工具JRebel 4.0 jar最新版本下载

J2EE开发部署工具JRebel 4.0 jar最新版本下载

距离J2EE开发工具JRebel 1.0的发布,已经过去了3年。近日JRebel 4.0正式版本终于发布了。

该版本支持匿名类重载、全面支持对EJBs3.X的重载变化、支持Seam 2.X、更好的系统整合(包括

支持35个框架)等。

详尽的变化更新日志如下:

4.0.3 (25th July 2011)

    Added beta support for Java 7
    Added beta support for JBossAS 7
    Added beta support for Apache Wink
    Added beta support for Spring-WS
    Added beta support for JAXB
    Fixed JSP reloading on WAS 7.0.0.17
    Fixed issues in Mojarra 2.0 integration
    Added support for @ManagedBean in Mojarra integration

下载地址:

 csdn:  jrebel4.0  51cto: jrebel4.0 千脑:jrebel4.0

 

 

jdk1.7正式版新特性一览表

jdk1.7新特性和新功能的用法

  新增了jLayer类,修饰swing组件;
  把swing从java.sun.***.swing 移动到了javax.swing中;
  增加了窗体透明效果和不规则窗体效果;
  JColorChooser 类新增 HSV tab;
  在html中嵌入jnlp文件;
  可在javascript中检测applet是否加载完成;
  可拖拽程序到浏览器外部或者使用快捷方式启动;
  网络URLClassLoader.close方法;
  支持 Sockets Direct Protocol (SDP) 提供高性能网络连接;
  集合新增TransferQueue接口,是BlockingQueue的改进版,实现类为LinkedTransferQuene;
  xml中支持jaxp,jax-ws,jaxb;
  switch代码块中加入String的支持;
  创建List / Set / Map 时写法:
    List< String> list = ["item"]; 
    String item = list[0]; 
    Set< String > set = {"item"}; 
    Map< String,Integer > map = {"key" : 1}; 
    int value = map["key"];
  资源的自动回收管理:
        try (BufferedReader br = new BufferedReader(new FileReader(path)) { 
         return br.readLine(); 
        }
  泛型实例创建:
   Map<String,String> hello = new Map<>();
  在数字中使用下划线
    int billion = 1_000_000_000;
  二进制符号:
    int binary = 0b1001_1001;
  一个catch里捕捉多个异常类型:
        try { 
    Here comes your code…. 
    } 
    catch(IOException | NullPointerException | ……….) { 
    }
 
  jdk1.7的bug:jdk1.7hotspot循环bug,OSR(On-Stack Replacement)控制流退出且对应的内存没

有被考虑到,JVM统计导致使用循环优化后的JVM崩溃
 

 

 
作者:Nasser  新特性一览表

  Swing

  新增 JLayer 类,是一个灵活而且功能强大的Swing组件修饰器,使用方法:How to Decorate Components with JLayer.

  Nimbus Look and Feel 外观从 com.sun.java.swing 包移到 javax.swing 包中,详情:javax.swing.plaf.nimbus.

  更轻松的重量级和轻量级组件的混合。

  支持透明窗体以及非矩形窗体的图形界面,请看 How to Create Translucent and Shaped Windows。

  JColorChooser 类新增 HSV tab.

  网络

  新增 URLClassLoader.close 方法,请看 Closing a URLClassLoader.

  支持 Sockets Direct Protocol (SDP) 提供高性能网络连接,详情请看 Understanding the Sockets Direct Protocol.

  集合

  新增 TransferQueue 接口,是 BlockingQueue 的改进版,实现类为 LinkedTransferQueue.

  RIA/发布

  拖拽的小程序使用一个默认或者定制的标题进行修饰,详情:Requesting and Customizing Applet Decoration in Draggable Applets.

  JNLP 文件做了如下方面的增强,详情请看 JNLP File Syntax:

   The os attribute in the information and resources elements can now contain specific versions of Windows, such as Windows Vista or Windows 7.

  Applications can use the install attribute in the shortcut element to specify their their desire to be installed. Installed applications are not removed when the Java Web Start cache is cleared, but can be explicitly removed using the Java Control Panel.

  Java Web Start applications can be deployed without specifying the codebaseattribute; see Deploying Without Codebase

  可直接在 HTML 中嵌入 JNLP 文件:Embedding JNLP File in Applet Tag.

  可在 JavaScript 代码中检查 Applet 是否已经加载完成:Handling Initialization Status With Event Handlers.

  可在 Applet 从快捷方式启动或者拖出浏览器时对窗口样式和标题进行控制:Requesting and Customizing Applet Decoration in Developing Draggable Applets.

  XML

   包含 Java API for XML Processing (JAXP) 1.4.5, 支持 Java Architecture for XML Binding(JAXB) 2.2.3, 和 Java API for XML Web Services (JAX-WS) 2.2.4.

 

Firefox显示未载入的图片设置方法

Update:感谢566同学的提醒,只要打开Firefox的about:config,搜索browser.display.show_image_placeholders然后双击改成true就可以了.


在IE中,未载入的图片显示一个红叉,而在Firefox里面,未载入的图片不仅什么提示都没有,甚至连图片所占用的宽和高都去掉了!这对用户比较友好,但是对于网页开发者来说有点不爽…

 

下面就是解决Firefox未载入图片不显示的解决办法:

1.下载Stylish插件 https://addons.mozilla.org/zh-CN/firefox/addon/2108/

2.安装并重启Firefox后,可以看到状态栏右侧有一个有S字母的灰色长方形图标,在此图标上面点右键选择 [编写新样式]–>[空白样式]

3.在弹出的[新样式]窗口中,名称随便写,下面的textarea中写入下列代码:

@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document url-prefix(http), url-prefix(file)
{
div[class="postmessage defaultpost"] { overflow
: visible !important;}
img:-moz-broken
{
-moz-force-broken-image-icon
:1;
width
:24px;
height
:24px;
}
}

 

 

最后点击保存就会实现未载入图片有边框显示并占用一定位置了

 

Shopex4.85模板教程-模板XML文件(theme.xml与info.xml)详解

我们来看下shopex系统安装目录下的themes文件夹。打开该文件夹,会出现数量不一的文件夹,4.85默认安装后以后会自带一个purple(紫气东来)的模板文件夹。接下来就以purple(紫气东来)作为例子来详细介绍下模板路径下的文件的作用。

打开purple文件夹,有3个文件夹和2个xml文件还有一堆的html文件和一个preview.jpg文件。(如下图)

shopex4.85 紫气东来模板的模板文件说明

shopex4.85 紫气东来模板的模板文件说明

首先说明下的就是2个XML文件,info.xml与theme.xml文件。是模板的核心配置文件。info.xml是应用于4.8系统前的配置文件。theme.xml是应用于4.8版本后的配置文件。

用编辑器(dreamweaver或者editplus,有很多)打开这2个文件。来看下info.xml,是一个典型的xml文件。简单说明下配置。

紫气东来      模板名 ,应用于后台模板管理中的名字。

purple    生成模板文件夹名,在模板包加载中生成该名字的文件夹。

ShopEx4.8    模板版本号

     模板说明

ShopEx  模板作者

http://www.shopex.cn  模板网站

     模板升级地址

 边框描述

 

 

这里所列出的信息会被用在后台“修改版块”面板的“版块边框”下拉框中。其中key为显示在后台的下拉选项,tpl为各边框相对模板目录的边框路径。

其他标记个人觉得无需配置。

theme.xml中大致和info.xml文件相同。会多出一个<widgets></widgets>标记。内容无需 记住,是系统生成出的。主要的功能是将你做好的模板挂件位置和布局相应写入xml中,在第一次加载或者恢复默认中,直接读取xml文件,无需再次手动添加 挂件。非常好的功能。

theme.xml在4.8系统中,如果没有这个文件后台不会读到该模板。这是4.8系统模板必要的文件。必须存在,所以在做一套模板时候,这个xml是必须配置完善的。

现在手动作个做简单的模板测试下xml文件。在系统目录下的themes文件夹下新建立个文件夹名字test,配置下info.xml与 theme.xml,可以复制下purple的配置文件到你的目录下,然后打开后配置,修改<name>测试模 板</name><id>test</id>,并将theme.xml中<widgets>< /widgets>中的代码删除,基本上是2个xml一致的,theme.xml多了个<widgets>< /widgets>的标记。然后保存。进入shopex后台,模板列表内,是否看到一个新的叫测试模板的新模板了。虽然应用时没用的,因为你还没有 制作,但是第一步已经完成了。