解惑

解己之惑,解人之惑

标签:服务器

服务器端的分页功能

ZK的分页功能默认是在客户端做的,也就是服务器端返回所有的结果,然后客户端每次显示一页的数据,翻页的时候不提交请求到服务器端重新查询。如果服务器端返回的结果比较多,这种方案就不太好了,要实现服务器端的分页也很简单,在使用Listbox或者grid的时候不要使用mold="paging",而是添加一个Paging组件:
<paging id="groupListboxPaging" pageSize="10"/>
然后给Paging增加事件监听:
        final Paging paging = getPaging(pagingName);
        paging.addEventListener(
            "onPaging", new EventListener()
        {
            public void onEvent(Event event)
            {
                PagingEvent pagingEvent = (PagingEvent) event;
                int pageNumber = pagingEvent.getActivePage();
                int firstRow = pageNumber * paging.getPageSize();
                queryInfos.get(listName).getPageInfo().setFirstRow(firstRow);
                refreshList(listName);
            }
        });
代码中的getPaging和refreshList都是我自定义的方法,getPaging很简单,因为我的这个代码是在自定义的Window类里面的,所以:
    protected Paging getPaging(String pagingName)
    {
        return (Paging) getFellow(pagingName);
    }
而refreshList就比较复杂一些了,根据传入的list的名字查询结果并刷新list:
    public void refreshList(String name)
    {
        try
        {
            getListbox(getListboxName(name)).setModel(new BindingListModelList(list(name), false));
        }
        catch (Throwable t)
        {
            handleException(t);
        }
    }
核心就是拿到Listbox或者Grid然后setModel。

JR总算是恢复了

历时三个多星期,JR总算是恢复了,这次主要是Bruce在弄,这次的问题一个是机器硬件出问题了,内存条坏了一根,而512M的内存根本就不够用,服务重启后只能支撑一个小时,另外一个问题就是我们的托管到期了,而原来的机房好像带宽不太好。
这次我们换了一个全新的机器,内存也加到2G,应该会比原来好很多。
不过这次连续停止服务超过三个星期,对JR的影响不知道有多大,前后收到过几个人的来信询问情况,不过当时的恢复都比较乐观,让他们失望了。

BT是柄双刃剑

相信很多人都在用BT,但是自从网络运营商对它采取各种限制措施后,我们就用得不是那么的舒服了,但是如果网络运营商不采取限制,那么运营商的带宽可能就严重不足了,采取这些限制以后,在试用BT工具的时候我们的其它网络服务可能就不能正常工作了,例如浏览网页,我想这个就是为什么我的这篇日志有那么多访问量的原因,可惜的是,cFosSpeed并没用能够很好的解决这个问题,当然,不排除我没用完全把握这个工具的可能性,也不排除我是太急躁了。
使用BT的本质问题其实是TCP连接数限制的问题(我认为使用BT之所以导致问题,是因为网络运营商限制了一个地址的TCP连接数,而BT要访问很多可能已经关机的机器,这样就导致了太多的临时的TCP连接,同时导致网络的较大浪费),如果我的这个判断正确的话,那么解决这个问题其实并不是很困难,办法就是提供一些服务器,保存这些PC的状态以及基本信息,PC启动或者关闭的时候连接到这些服务器更新自己的状态,而BT软件在连接这些PC资源的时候,先去服务器批量查询这些PC的状态,如果是关闭状态的,就不要做无谓的连接尝试了。
由于我对P2P技术不是很清楚,所以这个也只是一个简单的猜测,可能P2P技术中需要的PC信息都是动态的,记录没有意义,但是既然PC和PC之间能够访问,那么总归是有些信息可以共享的,我们需要缓存的就是这个信息,另外这个信息的更新可能是海量的,需要有服务商提供服务器做这件事,如何盈利是另外的事情了。

更新:
搜了下,发现TCP连接数的限制不是网络运营商搞的,而是微软搞的,XP的SP2里面把TCP连接数限制到50了,网上有些解决方法,主要就是下载破解补丁修改这个TCP连接数的限制到一个比较高的值,但是我好像也装过这个补丁,把TCP连接数提高到500,好像没有什么用。

2007年3月10日更新:
回家确认了下,安装脱兔的时候就有那个可以修改TCP连接数的东西,修改为500没有任何作用。

更换服务器

前两天一个朋友问我关于虚拟主机的事情,他也想建一个Blog,后来他看到一个服务商并推荐给我,看了下价钱,很便宜,一年的虚拟主机才100块钱,速度也还行,管理功能比较完善,提供的功能也很多,考虑到JR的服务器一直不太稳定,就换过去了。
过程还比较顺利,就是数据库空间比较大,把那些访问记录都去掉了,就OK了,现在还有大把的空间,呵呵,以后上传文件要小心点了,原来经常往JR的服务器上上传几十M的文件,回家再下载,这个服务器不行了,空间不够,而且还有流量限制(一个月7G),还是少用为妙。昨天晚上切换了IP后,今天看了下流量统计,只有12M,还好,平均来算,每天有240M的流量,现在还远远不到。这个虚拟主机另外的好处就是可以单独买流量,也不太贵,8.4元/G。

© 2025 解惑

本主题由Anders Noren提供向上 ↑