Stan

  听Eminem大概是从上大二开始,《8 mile》也很喜欢,Stan这首歌自然凭借它的旋律给我留下了深刻的印象。以前只知道Dido部分的旋律很好听,但最近才仔细看了这首歌的歌词,才知道里面有这么悲伤、励志的一个故事,像看了一场电影。

移动设备观看

Chorus: Dido
  My tea’s gone cold I’m wondering why I..
  茶越来越凉,我始终不知道为什么…
  got out of bad at all
  我的心情总是不好。
  The morning rain clouds up my window..
  清晨的雨遮住了我的窗
  and I can’t see at all
  我什么也看不见了
  And even if I could it’ll all be gray,
  看见的都是灰色
  but your picture on my wall
  但在墙上却有你的照片,
  It reminds me, that it’s not so bad,
  它提醒我,这还不算坏,
  it’s not so bad..
  还不算坏……
  1st Chorus: volume gradually grows over raindrop background
  2nd Chorus: full volume with beat right after “thunder” noise
  Dear Slim, I wrote you but you still ain’t callin
  亲爱的Slim,我写信给你,但你仍未答复。
  I left my cell, my pager, and my home phone at the bottom
  我把我的地址、姓名和电话都留在了信末,
  I sent two letters back in autumn, you must not-a got ’em
  秋天里发了两封信,你肯定都没有收到
  There probably was a problem at the post office or something
  可能是邮局或是什么地方搞错了
  Sometimes I scribble addresses too sloppy when I jot ’em
  有时我总是把地址写得很潦草
  but anyways; fuck it, what’s been up? Man how’s your daughter?
  但又能怎样呢?操他的蛋吧!你的女儿好吗?
  My girlfriend’s pregnant too, I’m bout to be a father
  我的女朋友也怀孕了,我就要做爸爸了
  If I have a daughter, guess what I’ma call her?
  如果是女孩,你猜我会叫她什么?
  I’ma name her Bonnie
  我会给她起名叫Bonnie
  I read about your Uncle Ronnie too I’m sorry
  我也读到了你的Ronnie叔叔的事儿,我很难过。
  I had a friend kill himself over some bitch who didn’t want him
  我有个朋友因为一个女人不要他而自杀了,
  I know you probably hear this everyday, but I’m your biggest fan
  我知道你也许每天都听到这个,可我是你的超级歌迷
  I even got the underground shit that you did with Skam
  我甚至有你和Skam一起做的地下音乐
  I got a room full of your posters and your pictures man
  我的房间里贴满了你的海报和照片
  I like the shit you did with Rawkus too, that shit was phat 我也喜欢你和Rawkus的歌,那棒极了
  Anyways, I hope you get this man, hit me back,
  反正,我很希望你能看见这封信,给我回信吧,
  just to chat, truly yours, your biggest fan,This is Stan
  只是聊个天,我是你最忠诚的歌迷―stan
  {Chorus: Dido}
  Dear Slim, you still ain’t called or wrote, I hope you have a chance
  亲爱的Slim,你还是没有给我回复,希望你能有机会回信
  I ain’t mad – I just think it’s FUCKED UP you don’t answer fans
  我还没疯,我只是认为你不给歌迷回复简直太糟糕了
  If you didn’t wanna talk to me outside your concert, you didn’t have to,
  如果你不想在剧场外理我,你就可以不理,
  but you coulda signed an autograph for Matthew
  但至少应该为Matthew签个名。
  That’s my little brother man, he’s only six years old
  那是我的小弟弟,只有六岁
  We waited in the blistering cold for you,four hours and you just said, “No.”
  我们在该死的寒风中等了四个小时,可你只是说了个“不”
  That’s pretty shitty man – you’re like his fuckin idol
  这太TMD糟糕了,伙计,那个小家伙可是把你当成了他的偶像。
  He wants to be just like you man, he likes you more than I do
  他想要成为像你那样的人,他比我更喜欢你。
  I ain’t that mad though, I just don’t like bein lied to
  我还没疯,我只是不喜欢被欺骗。
  Remember when we met in Denver – you said if I’d write you
  记得我们在丹佛的相遇吗?你说如果我写信,
  you would write back
  你会回信的
  see I’m just like you in a way
  看吧!我们其实有相同的境遇
  I never knew my father neither;
  我也不知道我爸是谁,
  he used to always cheat on my mom and beat her
  他总是背着我妈妈在外面鬼混而且还打我妈妈。
  I can relate to what you’re saying in your songs so when I have a shitty day, I drift away and put ’em on, cause I don’t really got shit else so that shit helps when I’m depressed
  我能在你的歌里看到自己。所以在那些心情沮丧的日子里, 我就飚着车漂着移听着你的歌,
  因为只有你的歌能帮我。
  I even got a tattoo of your name across the chest
  我甚至在胸前纹上你的名字
  Sometimes I even cut myself to see how much it bleeds
  有时我也会割开手腕看它到底能流多少血
  It’s like adrenaline, the pain is such a sudden rush for me
  那样非常刺激,那些痛楚一阵阵向我袭来
  See everything you say is real, and I respect you cause you tell it
  看,你说的什么事情我都认为是对的,因为那是你说的
  My girlfriend’s jealous cause I talk about you 24/7
  我女友开始嫉妒,因为我每天都在谈论你
  But she don’t know you like I know you Slim, no one does
  她不像我如此的了解你,没人能
  She don’t know what it was like for people like us growin up
  她不会明白有着我们这样成长经历的人
  You gotta call me man, I’ll be the biggest fan you’ll ever lose
  你一定要回信,我是你永远都不能失去的最忠实的歌迷
  Sincerely yours, Stan .
  你真诚的朋友,Stan
  – PS: We should be together too
  另外,我们也将会在一起的
  {Chorus: Dido}
  Dear Mister-I’m-Too-Good-To-Call-Or-Write-My-Fans,
  亲爱的从不回信先生
  this’ll be the last package I ever send your ass
  这将是我寄给你最后的邮件了
  It’s been six months and still no word – I don’t deserve it?
  六个月了,你一个字都没回―我不配得到你的回信吗?
  I know you got my last two letters;
  我知道你收到了最近的两封信;
  I wrote the addresses on ’em perfect
  我把地址写的清清楚楚
  So this is my cassette I’m sending you, I hope you hear it
  这回是我要寄给你的磁带,我希望你能听到
  I’m in the car right now, I’m doing 90 on the freeway
  我在车上,在高速路上开到90
  Hey Slim, I drank a fifth of vodka, you dare me to drive?
  嘿,slim,我喝了15瓶伏特加,你说我还能开吗?
  You know the song by Phil Collins, “in the air tonight”
  你知道PhilCollins的那首歌“in the air tonight”吗?
  about that guy who coulda saved that other guy from drowning
  那首歌说的是有一个人可以救另一个落水的人,
  but didn’t, then Phil saw it all, then at a a show he found him?That’s kinda how this is, you coulda rescued me from drowning
  但那家伙没有去救,Phil看到是事件的全过程,并且在后来的一个演出上找出了那个见死不救的人,那情形就和现在一样,你本可以阻止我溺水,
  Now it’s too late – I’m on a 1000 downers now, I’m drowsy
  但现在一切都晚了,我吃了1000片安眠药
  and all I wanted was a lousy letter or a call
  眼睛睁不开了,我想要的只不过是个该死的回信
  I hope you know I ripped +ALL+ of your pictures off the wall
  我希望您能知道我把你所有的照片都从墙上撕了下来
  I love you Slim, we could be together, think about it
  我爱你slim。我们本应该在一起的,想想吧
  You ruined it now, I hope you can’t sleep and you dream about it
  现在你把一切都毁了,我希望你会因此而失眠,你一定会梦到这一切。
  And when you dream I hope you can’t sleep and you SCREAM about it
  当你梦到时,你会醒来并且尖叫
  I hope your conscience EATS AT YOU and you can’t BREATHE without me
  我希望你会受到良心的谴责,失去我,你将无法呼吸
  See Slim; {*screaming*} Shut up bitch! I’m tryin to talk!
  看看吧,slim贱货,闭嘴!我正在说话呢
  Hey Slim, that’s my girlfriend screamin in the trunk
  嘿,slim,那是我的女友在后备箱中尖叫
  but I didn’t slit her throat, I just tied her up, see I ain’t like you
  但我不会割开她的喉咙,我只是绑住她,看,我才不像你呢
  cause if she suffocates she’ll suffer more, and then she’ll die too
  因为窒息而死会让她更痛苦,而且她马上也就要死了
  Well, gotta go, I’m almost at the bridge now
  好了,该走了,我已经到桥上了,
  Oh shit, I forgot, how’m I supposed to send this shit out?
  噢,见鬼,我TMD怎么才能把磁带寄出去呢?
  {*car tires squeal*} {*CRASH*}
  .. {*brief silence*} .. {*LOUD splash*}
  {Chorus: Dido}
  Dear Stan, I meant to write you sooner but I just been busy
  亲爱的Stan,我本打算尽快回信给你,但最近太忙了
  You said your girlfriend’s pregnant now, how far along is she?
  你说你的女朋友怀孕了,她现在怎样了?
  Look, I’m really flattered you would call your daughter that
  你能给你女儿起那个名字,我真的感到十分高兴
  and here’s an autograph for your brother,
  这里有给你弟弟要的签名,
  I wrote it on the Starter cap
  我写在了照片的上面
  I’m sorry I didn’t see you at the show, I must miss you
  很抱歉在演唱会上没能见到你,我肯定是错过了
  Don’t think I did that shit intentionally just to diss you
  不要认为我写那些歌是故意让你难过的
  But what’s this shit you said about you like to cut your wrists too?
  但是你说你自残割自己手腕,那是多么愚蠢的事情啊?
  I say that shit just clownin dogg,
  我唱那些只是说着玩的,笨蛋
  c’mon – how fucked up is you?
  拜托,你TMD在搞什么?
  You got some issues Stan, I think you need some counseling to help your ass from bouncing off the walls when you get down some
  你有些小问题,Stan,我想你需要些建议来帮帮你如何在沮丧的时候坚强起来
  And what’s this shit about us meant to be together?
  你说我们将会在一起是什么意思?
  That type of shit’ll make me not want us to meet each other
  这种话让我不想和你见面
  I really think you and your girlfriend need each other
  我想你和你的女友确实是相互需要的
  or maybe you just need to treat her better
  而且你应该对她好一些
  I hope you get to read this letter, I just hope it reaches you in time, before you hurt yourself,
  希望你能读到这封信,但愿它能赶在你伤害自己前寄到,
  I think that you’ll be doin just fine
  我感觉那会让你好起来的
  if you relax a little, I’m glad I inspire you Stan, but why are you so mad? Try to understand, that I do want you as a fan
  如果你放松一下,很高兴我可以激励你,但你为何那样疯狂,要试着去理解,我非常喜欢你当我的歌迷
  I just don’t want you to do some crazy shit
  我不想再看到你做疯狂的举动了
  I seen this one shit on the news a couple weeks ago that made me sick
  几周前我看到一个让我恶心的新闻
  Some dude was drunk and drove his car over a bridge
  一个家伙喝醉了并且开车冲到了桥下
  and had his girlfriend in the trunk, and she was pregnant with his kid
  后备箱里是他怀孕的女友
  and in the car they found a tape, but they didn’t say who it was to
  在车上还找到了一盒磁带 可他们没说磁带是给谁的……
  Come to think about it, his name was.. it was you
  我想想,他的名字是……是你
  Damn!
  该死的!

没想到

  钓鱼岛自古以来就是中国的固有领土。
======================分割线========================
  没想到这么久后才写了一篇非技术的文章;没想到一写就是这么敏感的话题。上面那一段是我的个人立场。
  这两天因为别的原因都要出门,恰巧看到了一部分因为日本政府的言行所引起的反日游行。我一直觉得任何人或事,在不了解真相的时候就不能妄下评论,所以就游行这件事本身我没有什么好说的,因为我并不知道我所看到的东西的来龙去脉。我只想告诉大家我的一点感受,这些也许和你们坐在电脑前转发评论微博的感受不太一样。
  我站在十字路口的西南侧,游行队伍在十字路口的正北侧(相距大约100米左右),十字路口中心区域为真空地带。游行队伍骚动时西侧的民警就会要求大家往后退,我确实想起了《盗梦空间》里一层梦境中齐藤被按在二楼小房间地上时,窗外的场景,而我所看到的只不过是游行队伍里扔出来的几个矿泉水瓶子而已。你也许觉得夸张了,你也许觉得是我胆小了,我只是陈述一下我的感受。
  没想到的还有一件事情,我从事的技术行业内有人开始扯政治了。震惊:美企在中国地图上直接抹杀钓鱼岛和藏南!【转自铁血网精华帖】,我读完了整个日志和帖子,觉得作者的文笔和气势非常好。
  但这件事情我是了解始末的,所以我觉得自己可以发表一点看法。公司为了生存,都会有本地的公关办法。比如google地图中国版写的是“钓鱼岛”google地图日本版写的是“钓鱼岛 尖阁诸岛”。Esri同样有本地化的地图,上面写的同样是“钓鱼岛”。barry说的对,地图只代表一个国家对世界的认知而已。我14岁的时候看到外国地图上少印一个钓鱼岛也会生气,也会震惊;但现在觉得就算地图上印的是钓鱼岛,也不等于现在上岛就不会有小日本干扰你。只有让自己真正强大起来,才能从根本上改变别人对你的看法,用手去捂住自己或同胞的眼睛,只会给别人留下笑柄。王小波说过,人一切的痛苦,本质上都是出于对自己无能的愤怒。写这个文章的朋友,用不着动气。
  最后看到上面博客中提到的铁血网精华的帖子,发贴日期是2012-9-16,作者id是“天地日月在我心”,注册日期也是2012-9-16(昨天),希望此人不是真正的铁血论坛网友,否则我以后绝对不会再看任何出自这个鸡血论坛的文章了,虽然我以前也没有看过。
======================分割线========================
  人类为什么为了一个小岛如此动怒?你只是这个星球上众多物种的一千万分之一,你和其它一千万分之九百九十九万九千九百九十九商量过你要占领岛屿这个想法么?

WebGL Globe实例

  WebGL Globe是Google Data Arts Team建立的基于WebGL技术的地理数据可视化工具,最初用来向人们展示全球用户使用Google搜索引擎的概况
image   WebGL Globe开源代码在这里,我做了两个小例子。一个是国内(台湾省数据暂缺)及美国每个县(郡)的人口数据,由于数据来源,统计方法不同,例子中两者间的绝对值没有可比性,可比性仅限于各自国家之内。美国人口最多的地方是Los Angeles,国内人口最多的地方是广东普宁及安徽临泉。可看出国内西部地区每个县面积较大,但人口相对少。国内数据来源于同学写论文时千辛万苦的收集(据说需要保密),美国数据是Esri自带的。
点击打开地图  另一个例子是世界陆地上各处的高程,数据来源于Esri免费提供的World Elevation Services。  
击打开地图   建议在Chrome或IE10浏览器下观看。

Always backup first…

  今天看到个Wordpress的插件BackWPup,据说是备份wp的好帮手。突然想起自己博客上次备份已经不知道是什么时候了,觉得有点对不住它,就想用这个工具试一下。
  在备份前我就想知道如何在将来用备份的文件进行恢复,于是就在BackWPup选项中找到了restore,当时眼一花,手一滑,点了restore,在那十分之一秒内想,总不会这样就直接恢复了吧?怎么也应该有个确认提示吧?结果直接看到“恢复成功,现在可以删掉备份的xxx文件”,擦。。。回首页一看,10年5月,time machine!。。。
  原来wp的根目录下竟然有10年5月的一个mysql备份文件;BackWPup竟然就需要这么一个文件在这么一个地点;BackWPup恢复时竟然就没有确认选项。。。
  最后用胡辣汤期货为诱饵,让鲶总找到了今年3月他不经意的一次mysql备份,恢复;又用BlogSync和live writer从另一个平行世界同步回了剩下的帖子。赶快在BackWPup设置了一个任务:每天夜里3点自动把博客统统打包,发送到dropbox里去。。。

利用Nginx做反向代理搭建ArcGIS 10.1 for Server集群环境

  搭建GIS Server集群环境时,通常不建议在GIS Server之间设置防火墙;而建议在服务器环境的前端设置反向代理来隐藏服务器环境的真实地址及端口,保险起见可将反向代理放入DMZ区(前后都设置防火墙),增加安全性。
Multiple firewall scenario with reverse proxy web server
  ArcGIS 10.1 for Server做出的架构改进使得我们在搭建GIS服务器集群环境时更加容易和省心;Nginx因其高性能,耗资源少,稳定性高,成本低廉,配置简单等诸多特性被越来越多地使用。这里简单介绍如何利用Nginx做反向代理并实现Web层的负载均衡效果,来搭建ArcGIS 10.1 for Server集群环境的过程。具体环境如下:
image

  • 192.168.0.247(Windows Server 2008 R2):安装Web Server(IIS 7.5),Web Adaptor(使用默认80端口),ArcGIS 10.1 for Server(使用默认6080端口);
  • 192.168.0.244(Windows Server 2003 R2):安装Web Server(IIS 6.0),Web Adaptor(使用默认80端口),ArcGIS 10.1 for Server(使用默认6080端口);
  • 192.168.0.69(Windows 7):运行Nginx,监听本地80端口;

其中192.168.0.247和192.168.0.244两台机器安装ArcGIS 10.1 for Server,加入同一个site,组成GIS Server集群,并分别安装Web Server和Web Adaptor,组成Web Server集群;192.168.0.69机器上运行Nginx,监听80端口,充当反向代理服务器,并将接受到的请求负载均衡到247和244两台机器上。这样既利用了企业级Web Server的性能,也一定程度上保证了内网环境的安全。Nginx配置过程如下。
  由于是Windows环境,从官网上下载稳定的1.2.3版本,解压到192.168.0.69机器的c:
ginx-1.2.3目录下。因为我们打算让Nginx监听80端口,所以需要将本身占用80端口的IIS默认网站停掉。打开conf目录下的nginx.conf文件,修改如下:
image  命令行方式输入’start nginx’启动Nginx,然后发送请求到192.168.0.69机器的80端口:
image  看到请求被转发到了247机器的IIS 7.5上,再次刷新,
image  请求已经轮询到了244机器的IIS 6.0上。最后通过69机器来访问ArcGIS Server的Services Directory,
image  此时Nginx会以轮询的方式访问247和244两台机器的Web Adaptor。
  这里只是针对ArcGIS for Server集群环境配置做了简单介绍,在实际中可能还需考虑搭建可容错的共享存储环境,DNS服务器的配置,硬件防火墙的配置,Nginx具体参数的配置等因素。

ArcGIS 10.1 for Server机器判断本机是否已经加入site的依据

  在一台机器上安装ArcGIS 10.1 for Server后,它还无法立即工作,必须将其加入site(的cluster)之中才行。首次登录manager时,也会询问创建新的site还是加入已有的site;如果已经加入site,登录manager则会显示该site的管理目录。那么机器自身是如何判断出自己是否已经加入site了呢?
  依据就在于Program FilesArcGISServerframeworketc目录下的两个xml文件,config-store-connection.xml和machine-config.xml。加入site时会在本机创建这两个文件,退出site时会删除之。前者记录site的公用信息,后者记录本机在site中的信息,具体内容大家可以自己查看。
  登录manager时会读取这两个文件,如果找不到,则认为自己没有加入site,会询问创建新site还是加入已有site;如果有这两个文件,会首先访问site的config-store目录验证其内容,合法的情况下就打开site管理目录。 如果在一台机器关机时,从site中将其删除,开机后会根据config-store-connection.xml内容去site的config-store目录中验证,发现自己已经被从site中移除后,会自己删除本机的这两个xml文件。
  此外,如果你的机器已经加入了site A,但现在需要临时加入site B去做一些工作,就不用在admin api去删除site A了,只需将上述两个xml文件先转移到别的地方,然后登录manager,选择加入site B即可;之前site A的config-store内容可以保留,以便将先前挪走的两个xml文件复原后(需要重启ArcGIS Server服务),登录manager即可直接返回site A。

ArcGIS 10.1 for Server中Web Adaptor的工作原理

  ArcGIS 10.1 for Server的安装目录中,都会内置一个tomcat(Program FilesArcGISServerframeworkruntimetomcat),无需单独的Web Server即可发布各种GIS服务(对于熟悉.NET的朋友来说,更省去单独安装和配置IIS的步骤);AGS应用程序的端口号也由之前版本的80(ArcGIS Server for .NET)和8099/8399(ArcGIS Server for Java)统一到了6080上,比如http://localhost:6080/arcgis/rest/serviceshttp://localhost:6080/arcgis/manager等。但对于内置的这个tomcat,我们并不能进行过多的操作,如果需要部署Web应用或通过别的端口来访问ArcGIS for Server的服务,这时就需要用到新的组件:Web Adaptor了。
  Web Adaptor实际上是安装在Web Server机器上的一个Web应用程序,负责将Web Server接收到的GIS请求转发到ArcGIS Server site内的GIS Server机器上去。通过Adaptor这个桥梁,我们就能使ArcGIS for Server利用到企业级Web Server的诸多优势。根据安装帮助中的解释,安装Web Adaptor后主要有以下好处:

  • 将单独的企业级Web Server集成到ArcGIS for Server的部署架构中来。可以将利用ArcGIS for Server服务的Web应用部署到Web Server上去;可以为site内所有的GIS Server提供不含有6080端口及arcgis等字样的统一访问入口点;
  • 可阻止最终用户通过Web Adaptor的访问地址连接到ArcGIS for Server的相关管理程序。比如用户如果得知了类似6080端口的GIS服务访问地址,就可通过固定的url地址访问到Manger,Admin api等涉及到整个站点操作的内置应用。而Web Adaptor给我们提供了选项,可禁止用户通过Web Adaptor暴露出的GIS服务地址访问到这些管理应用。

  此外,相对于site内的多台GIS Server机器,Web Adaptor还可以再次(除了Web Server集群外)起到负载均衡的作用,这在大并发量的情况下会比较有效。假设一个site内有n台GIS Server,它们所能处理的最大并发请求是1w个;根据ArcGIS for Server中p2p的实时通信架构,当我们将1w个并发请求发送到任一GIS Server的tomcat上时,GIS Server之间会自动以轮询(默认设置)的方式处理这些请求,GIS Server们完全可以及时响应;但1w个Web请求会首先使接收请求的这个tomcat过载,产生瓶颈。如果有了Web Adaptor,当这1w个请求到达Web Server(集群)时,Adaptor会将这些请求轮询发送到每个可用的GIS Server去,这样每个tomcat就只需支持1w/n个并发即可,可最大限度利用硬件资源。
  以IIS中的Web Adaptor为例(经过Java高手验证WebLogic和WebSphere的Adaptor工作过程与此是完全一致的),看看反编译后的代码。通过查看inetpubwwwrootarcgisWeb.config文件得知,IIS中的Web Adaptor主要的工作过程都集中在ESRI.ArcGIS.WebAdaptor.dll(在GAC目录中)里。这个dll里首先找到两个类:
image  一个Node就对应一个GIS Server机器,_healthy标记该机器的可用状态;NodeManager是所有Node的管理类。Web Adaptor启动时,会调用WebAdaptorConfig.GetMachines()方法,此方法会向http://siteip:port/arcgis/admin/machines发送get请求,获取site内所有GIS Server机器的列表,然后利用UpdateNodeList方法保存在NodeManager类中,并写入WebAdaptor.config文件。
  此外,最重要的是一个叫AGSHandler的类,它实现了IHttpHandler接口:
image  发送到Web Server的GIS请求都会由其中的ProcessRequest方法进行处理。前面说过Web Adaptor是以轮询方式转发请求的,而_currentNodeIndex便记录了请求转发目标GIS Server的在Nodes列表中的索引:
image  Web Adaptor接收到发到Web Server的GIS请求后,首先会读取初始化时保存的WebAdaptor.config配置文件并查看里面存储的GIS Server机器列表,如果读取失败或者机器个数为0,都会响应500的错误。如1所示;接下来会利用try里的TransferRequest方法将请求转发到具体的GIS Server(的tomcat)上去,如果转发的这个机器没有响应,则会在catch中将此机器利用MarkUnHealthy方法标记为不可用;而不论当前节点是否成功接收请求,TransferRequest方法中都会将_currentNodeIndex节点加一,保证下一个请求发送到下一台GIS Server上去,以实现轮询请求的事实:
image image  最后来看看Web Adaptor是如何根据配置文件的间隔时间去追询标记为下线机器的状态,在机器上线后又将它们加回可用机器列表的:
imageimageimage  可以看出,Web Adaptor检测到没有响应的机器后,除了标记其为不可用,也会同时启动一个定时器,此定时器逝去配置文件中的检测下线机器状态时间间隔(分钟)后,会立即将这台机器重新标记为可用,而不会去检测它事实上是否可用。判断机器是否真正可用的过程还是通过前面TransferRequest方法来完成的,即直接向其转发请求,如正常响应,证明其已经在线;如不能正常响应,则再次标记其不可用,重新启动定时器进入下一个轮回…
  大家可以想一想,整个过程是否有不合理的地方呢?

ArcSDE 10.1 for PostgreSQL on Windows安装

  ArcGIS换了10.1后,需要安装SDE,按照以前的习惯依然选用PostgreSQL。但10.1的SDE安装步骤变化不小,记录下来供有需要的朋友参考。
  首先,安装介质上不再自带PostgreSQL数据库的安装文件了,需要自己下载。系统要求上指明支持的版本是9.0.5 64bit(所有Enterprise SDE只支持64位的数据库),我在官网上下载了最接近的9.0.8版本,安装。
其次,10.1版本在弱化ArcSDE服务连接的事实,所有文档默认使用直连的方式。最明显的体现是,将以前的Post Installation的步骤(创建数据库用户,系统表,Schema等工作)从ArcSDE的软件安装步骤中剥离了出来,而能够(也仅能够)采用名为Create Enterprise Geodatabase的新GP工具来完成。因此,如果不需要ArcSDE服务连接方式的话,就无需安装ArcSDE软件了。
  下面说明建立直连方式的完整安装步骤(参考此安装文档):

  1. 安装PostgreSQL数据库;
  2. (可选)修改%PostgreSQL%9.0datapg_hba.conf文件,添加“host     all          all      0.0.0.0/0       md5”记录,让任意客户端均可连接你的数据库集群(修改后需重启postgresql-x64-9.0服务以生效);
  3. 从%Program Files%ArcGISDesktop10.1DatabaseSupportPostgreSQLWindows64目录下,拷贝st_geometry.dll文件到%PostgreSQL%9.0lib目录。在PostgreSQL中创建Geodatabase时必须用到此类库;
  4. 配置PostgreSQL的客户端。因为直连方式要求ArcSDE的客户端必须安装数据库的客户端类库,所以首先需要获取PostgreSQL的客户端。ArcGIS Desktop是32位软件,需要的是32位的PostgreSQL类库。我在官网上的zip archive链接中下载了32位的PostgreSQL binary文件,解压后将bin目录中的libeay32.dll, libiconv-2.dll, libintl-8.dll, libpq.dll, and ssleay32.dll文件拷贝到%Program Files%ArcGISDesktop10.1bin目录下;如果ArcGIS Server也需要直连到PostgreSQL中,则需要拷贝libeay32.dll, libintl.dll, libpq.dll, and ssleay32.dll上述同名的5个64位的库(帮助中的64位库列表有误)到%Program Files%ArcGISServerbin目录下,因为ArcGIS Server现在是64位的软件了,这几个库可在PostgreSQL 64位的安装目录下找到;
  5. 在ArcMap中使用Create Enterprise Geodatabase工具完成“Post Installation”过程。
    image
    对于PostgreSQL库来说Instance是数据库所在的服务器名称;Database是所要新建的GDB名称;对于PostgreSQL,GDB Administrator只能是sde;如果Tablespace Name留空,会将GDB创建到默认的pg_default表空间里;
  6. 建立直连连接。通过Add Database Connections建立直连连接:
    imageDatabase是刚才创建的GDB名称。

  如果只需要使用直连方式连接的话,就到此结束了。如果仍需要使用ArcSDE服务方式连接,则需要其他步骤。下面说明建立ArcSDE服务连接的额外步骤:

  1. 安装ArcSDE for PostgreSQL 10.1;
  2. 修改%Program Files%ArcGISArcSDEpgexeetcservices.sde文件和WindowsSystem32driversetchosts文件,分别增加“esri_sde 5151/tcp”记录;
  3. 创建ArcSDE服务。你会发现1中安装完ArcSDE后没有弹出后配置的对话框,也无法从开始菜单中找到它,sdesetup命令也没有了install的操作,这也是前面为什么说这个工作仅能够通过新的GP工具来完成的原因。所以以前后配置向导中创建ArcSDE服务的工作就只能通过命令行方式来完成了,分别键入以下两个命令以完成在注册表中创建服务的工作:
    sdeservice -o create -d POSTGRESQL,postgresql-x64-9.0
    sdeservice -o register -d POSTGRESQL,postgresql-x64-9.0 -r ADMIN_DATABASE -v sde
  4. 启动服务。可以用“sdemon –o start”命令或从Windows服务面板中启动ArcSDE服务;
  5. 创建连接。Add Database Connection只能创建直连连接,因此需要使用新的Create ArcSDE Connection File GP工具来创建ArcSDE服务连接文件。为了保持以前版本的使用习惯,可将新创建的.sde文件位置保存在c:UsersAdministratorAppDataRoamingESRIDesktop10.1ArcCatalog目录中,这样就可以从Database Connections节点中方便的找到它了。
    image

  参考:http://blog.csdn.net/linghe301/article/details/6675044