<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>牧羊人的方向 &#187; 牧羊人</title>
	<atom:link href="http://www.sweetytang.com/archives/author/solihawk/feed" rel="self" type="application/rss+xml" />
	<link>http://www.sweetytang.com</link>
	<description>追风少年,且听风吟,风犹在耳,牧羊人的方向</description>
	<lastBuildDate>Mon, 08 Sep 2014 05:13:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>会稽：春过山阴了无痕</title>
		<link>http://www.sweetytang.com/archives/159.html</link>
		<comments>http://www.sweetytang.com/archives/159.html#comments</comments>
		<pubDate>Mon, 08 Sep 2014 05:13:42 +0000</pubDate>
		<dc:creator>牧羊人</dc:creator>
				<category><![CDATA[小楼听雨]]></category>
		<category><![CDATA[故乡]]></category>

		<guid isPermaLink="false">http://www.sweetytang.com/?p=159</guid>
		<description><![CDATA[我与绍兴最初的勾连，大概便是我的父亲在我的姊姊出生那年，亲手埋于地下的一 坛女儿红。这是一种源自绍兴地区的风俗，最早见载于永安元年（西元304年），嵇含所 著我国现存最早的植物志《南方草木状》。其时的女儿红尚被唤作“女儿酒”，是旧时 闾右人家生女嫁女必备之物；一般于女儿出生之日以糯米装坛，并以泥封坛口埋于地下 ，待到女儿出嫁之时再取出用来款待亲朋。倘若生的是儿子，那便变身为状元红了。  这种风俗在绍兴经千年沿袭，到了今日仍有流传。但在遥远的黄河北岸，却堪称凤 毛麟角一般罕见。个中原因，似乎便藏身在父亲压箱底的那本略微泛黄的手抄本族谱之 内。虽然其中确信可考的传承仅能上溯至明朝初年，但之前草蛇灰线的攀附，却可直追 至《二十四孝》中“卧冰求鲤”的王祥与《二十四悌》中“舍身护兄”的王览两兄弟。 而王览那位被后世誉为“书圣”的曾孙，便与绍兴结有不解之缘。 绍兴原名於越，本为越人所居之地。传说在邈远的上古时代，夏禹王姒文命曾在其 境内的茅山（今会稽山）大会诸侯，计算他们的功德再分别予以封赏：爵其德而封其功 。太史公司马迁在《史记&#38;#8226;夏本纪》中载：“禹会诸侯江南，计功而崩，因葬焉，命曰 会稽。会稽者，会计也。”至今，在绍兴南郊的会稽山麓，仍留有夏禹王的大禹陵。山 陵脚下缓缓流淌的平水江，则是昔日西施浣纱的若耶溪。 后来，夏禹王的玄孙姒少康在遗臣伯靡的辅佐下，攻灭寒浞恢复了夏王朝的统治。 这位开创了中国历史上第一段“中兴”的夏王，又将自己的庶子姒无余封于会稽创立越 国，命其代为祀奉祖先的陵寝，这便是绍兴作为国都的启端。如此直到西元前473年，卧 薪尝胆的越王姒勾践攻灭吴国，将都城迁至吴国故都姑苏。 西元前306年，末代越王姒无疆为楚将景翠所杀；八十余年后的西元前223年，末代 楚王熊负刍又为秦将王翦所擒。统一了六国的秦帝国，将越国故地置为会稽郡，但郡治 却留在了姑苏。西元前210年，秦始皇嬴政在他最后一次东巡中途经绍兴，因其位于会稽 山北，将其改名为山阴。 永建四年（西元129年），因汉顺帝刘保以钱塘江为界，从会稽郡中拆出了吴郡，山 阴县取代吴县（即姑苏）成为会稽郡郡治。到了陈朝永定年间，由于北方士民的大量南 迁，人口众多的山阴县又被析分为山阴和会稽两县。两县以纵贯全城的府河为界，河东 为会稽，河西则为山阴。 等到陈帝国为隋帝国所灭，隋炀帝杨广于大业元年（西元605年）废郡设州，会稽郡 被改称为越州。又过了五百多年，建炎五年（西元1131年），宋高宗赵构取“绍祚中兴 ”之意改元“绍兴”，并升越州为绍兴府作为陪都，“绍兴”一名才正式行于世上。有 意思的是，二十年后，“绍兴”同样成为与赵宋皇室有百年基情的耶律皇室成员――西 辽仁宗耶律夷列的年号。 但我的第一次绍兴之旅，却直到西元2011年，自己毕业移居南京后的第一个清明假 期才得以成行。所幸假期的第一天并非清明，抵达绍兴后不必急于前去嵊州祭祖，我得 以在城内安心地进行阅览。 绍兴府城内有三座有名的小山，分别唤作蕺山、府山和塔山，而蕺山就坐落在绍兴 火车站的西面不远。相传越王姒勾践在夫椒兵败后，被吴王姬夫差囚禁在姑苏服了整整 三年劳役，直到有天姬夫差患病不起，姒勾践为之亲尝粪便察验病情才得以放回。但回 到会稽的姒勾践却因此得了口臭，大夫范蠡于是令宫中众人皆食蕺草以味相掩，因蕺草 多采于此山，故得名蕺山。 蕺山之顶建有一座文笔塔，与府山的飞翼楼、塔山的应天塔成鼎足之势，共同构成 了千年古城的华丽天际线。蕺山东侧的石壁上刻有唐、宋、明三朝的多处石刻，最有名 的是唐代的《董昌生祠题记》；石壁下则是冷然池，池畔建有泠然亭，皆取宋代山阴人 苏泂诗集《冷然斋集》而得名。蕺山南坡则是明末清初三大思想家之一的黄宗羲曾经就 读过的蕺山书院，原名证人书院，是因满清豫亲王爱新觉罗·多铎攻陷杭州而绝食殉国 的儒学大师刘宗周，于天启四年（西元1623年）所创；后因刘宗周在此开创了蕺山学派 获得尊称“蕺山先生”，这才鸡犬升天改作蕺山书院。书院旁有一蕺山亭，亭柱上刻着 山阴、会稽两县历年科举考中状元的士子姓名，因此又被称作“状元亭”。 沿蕺山亭一路南行，下了山便到了改建于大中六年（西元852年）的戒珠寺，取“戒 律洁白，犹如珠体”之意。因是由东晋右军将军王羲之的别业改建而成，故而与寻常寺 庙由弥勒佛把守山门的定制略有不同，戒珠寺的山门正中坐着的是一名身着纶巾朝服的 官员，自是原来的主人王羲之无疑了。 但生性爱热闹的劳动人民却不满这段平淡无奇的历史，自己动手创造出另一段传说 ：书圣王羲之为锻炼手劲，平日无事总爱携一宝珠置于掌中把玩――或许这便是健身球 最早的起源――谁知一日与僧友会谈时却发现宝珠不翼而飞，于是便怀疑起了造访的僧 友，虽碍于情面没有明言，却满眼露出鄙夷之色。看在眼里的僧友有口难辩，以致满腹 郁结，回去不久便一命归西了。不想数日后，家人在宰杀院中所养白鹅时，竟于鹅胗中 发现了遗失的宝珠。王羲之这才惊觉自己冤枉了僧友，于是悔恨交加之下立誓戒除玩珠 的癖好，并舍家为寺以纪念坐化的僧友。也正因如此，寺院得名为“戒珠寺”。 但我那时却无暇理会这些无恶意的闲人编造出来的流言，而是掏出手机，对着相传 是书圣亲笔所题的“戒珠講寺”牌匾拍了张照，然后将它传给了我的一位男同事：四儿 。四儿与我同批入行，却眼明手快先我一步，于楼下的营业部交往了一位名字中含有“ 珠”字的女同事；可惜好景不长，两人拍拖没多久，便因为这样那样不为人知的原因分 了手。结果四儿在那段时间很是消沉，但作为朋友的我却不知该如何慰藉。现下好了， 希望他能明白我的一番苦心&#8230; 出戒珠寺沿蕺山街南行，不远便是躲婆弄和题扇桥，二者皆出自同一则故事：相传 担任会稽内史的王羲之，有次按惯例从住处经蕺山街前往官衙，无意瞥见一位老婆婆守 在桥头，虽格外卖力地叫卖自己的六角扇，生意却丝毫不见起色。生出恻隐之心的王羲 之，停步在她的扇面上各题了几个字，然后对面露愠色的老婆婆说：“老人家，妳莫要 生气！这扇子妳拿去对人讲是王右军题的字，我包妳每柄卖出百钱！”将信将疑的老婆 婆如法炮制，果然扇子很快便被抢购一空。因此，那座单孔石拱桥便得名为“题扇桥” ；桥头后又立一碑，由有“当代卫夫人”之称的女书法家萧娴亲题“晉王右軍題扇橋” &#8230; <a href="http://www.sweetytang.com/archives/159.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>我与绍兴最初的勾连，大概便是我的父亲在我的姊姊出生那年，亲手埋于地下的一 坛女儿红。这是一种源自绍兴地区的风俗，最早见载于永安元年（西元304年），嵇含所 著我国现存最早的植物志《南方草木状》。其时的女儿红尚被唤作“女儿酒”，是旧时 闾右人家生女嫁女必备之物；一般于女儿出生之日以糯米装坛，并以泥封坛口埋于地下 ，待到女儿出嫁之时再取出用来款待亲朋。倘若生的是儿子，那便变身为状元红了。 <span id="more-159"></span></p>
<p>这种风俗在绍兴经千年沿袭，到了今日仍有流传。但在遥远的黄河北岸，却堪称凤 毛麟角一般罕见。个中原因，似乎便藏身在父亲压箱底的那本略微泛黄的手抄本族谱之 内。虽然其中确信可考的传承仅能上溯至明朝初年，但之前草蛇灰线的攀附，却可直追 至《二十四孝》中“卧冰求鲤”的王祥与《二十四悌》中“舍身护兄”的王览两兄弟。 而王览那位被后世誉为“书圣”的曾孙，便与绍兴结有不解之缘。</p>
<p>绍兴原名於越，本为越人所居之地。传说在邈远的上古时代，夏禹王姒文命曾在其 境内的茅山（今会稽山）大会诸侯，计算他们的功德再分别予以封赏：爵其德而封其功 。太史公司马迁在《史记&amp;#8226;夏本纪》中载：“禹会诸侯江南，计功而崩，因葬焉，命曰 会稽。会稽者，会计也。”至今，在绍兴南郊的会稽山麓，仍留有夏禹王的大禹陵。山 陵脚下缓缓流淌的平水江，则是昔日西施浣纱的若耶溪。<br />
后来，夏禹王的玄孙姒少康在遗臣伯靡的辅佐下，攻灭寒浞恢复了夏王朝的统治。 这位开创了中国历史上第一段“中兴”的夏王，又将自己的庶子姒无余封于会稽创立越 国，命其代为祀奉祖先的陵寝，这便是绍兴作为国都的启端。如此直到西元前473年，卧 薪尝胆的越王姒勾践攻灭吴国，将都城迁至吴国故都姑苏。<br />
西元前306年，末代越王姒无疆为楚将景翠所杀；八十余年后的西元前223年，末代 楚王熊负刍又为秦将王翦所擒。统一了六国的秦帝国，将越国故地置为会稽郡，但郡治 却留在了姑苏。西元前210年，秦始皇嬴政在他最后一次东巡中途经绍兴，因其位于会稽 山北，将其改名为山阴。<br />
永建四年（西元129年），因汉顺帝刘保以钱塘江为界，从会稽郡中拆出了吴郡，山 阴县取代吴县（即姑苏）成为会稽郡郡治。到了陈朝永定年间，由于北方士民的大量南 迁，人口众多的山阴县又被析分为山阴和会稽两县。两县以纵贯全城的府河为界，河东 为会稽，河西则为山阴。<br />
等到陈帝国为隋帝国所灭，隋炀帝杨广于大业元年（西元605年）废郡设州，会稽郡 被改称为越州。又过了五百多年，建炎五年（西元1131年），宋高宗赵构取“绍祚中兴 ”之意改元“绍兴”，并升越州为绍兴府作为陪都，“绍兴”一名才正式行于世上。有 意思的是，二十年后，“绍兴”同样成为与赵宋皇室有百年基情的耶律皇室成员――西 辽仁宗耶律夷列的年号。<br />
但我的第一次绍兴之旅，却直到西元2011年，自己毕业移居南京后的第一个清明假 期才得以成行。所幸假期的第一天并非清明，抵达绍兴后不必急于前去嵊州祭祖，我得 以在城内安心地进行阅览。</p>
<p>绍兴府城内有三座有名的小山，分别唤作蕺山、府山和塔山，而蕺山就坐落在绍兴 火车站的西面不远。相传越王姒勾践在夫椒兵败后，被吴王姬夫差囚禁在姑苏服了整整 三年劳役，直到有天姬夫差患病不起，姒勾践为之亲尝粪便察验病情才得以放回。但回 到会稽的姒勾践却因此得了口臭，大夫范蠡于是令宫中众人皆食蕺草以味相掩，因蕺草 多采于此山，故得名蕺山。</p>
<p>蕺山之顶建有一座文笔塔，与府山的飞翼楼、塔山的应天塔成鼎足之势，共同构成 了千年古城的华丽天际线。蕺山东侧的石壁上刻有唐、宋、明三朝的多处石刻，最有名<br />
的是唐代的《董昌生祠题记》；石壁下则是冷然池，池畔建有泠然亭，皆取宋代山阴人<br />
苏泂诗集《冷然斋集》而得名。蕺山南坡则是明末清初三大思想家之一的黄宗羲曾经就<br />
读过的蕺山书院，原名证人书院，是因满清豫亲王爱新觉罗·多铎攻陷杭州而绝食殉国<br />
的儒学大师刘宗周，于天启四年（西元1623年）所创；后因刘宗周在此开创了蕺山学派<br />
获得尊称“蕺山先生”，这才鸡犬升天改作蕺山书院。书院旁有一蕺山亭，亭柱上刻着<br />
山阴、会稽两县历年科举考中状元的士子姓名，因此又被称作“状元亭”。<br />
沿蕺山亭一路南行，下了山便到了改建于大中六年（西元852年）的戒珠寺，取“戒<br />
律洁白，犹如珠体”之意。因是由东晋右军将军王羲之的别业改建而成，故而与寻常寺<br />
庙由弥勒佛把守山门的定制略有不同，戒珠寺的山门正中坐着的是一名身着纶巾朝服的<br />
官员，自是原来的主人王羲之无疑了。<br />
但生性爱热闹的劳动人民却不满这段平淡无奇的历史，自己动手创造出另一段传说<br />
：书圣王羲之为锻炼手劲，平日无事总爱携一宝珠置于掌中把玩――或许这便是健身球<br />
最早的起源――谁知一日与僧友会谈时却发现宝珠不翼而飞，于是便怀疑起了造访的僧<br />
友，虽碍于情面没有明言，却满眼露出鄙夷之色。看在眼里的僧友有口难辩，以致满腹<br />
郁结，回去不久便一命归西了。不想数日后，家人在宰杀院中所养白鹅时，竟于鹅胗中<br />
发现了遗失的宝珠。王羲之这才惊觉自己冤枉了僧友，于是悔恨交加之下立誓戒除玩珠<br />
的癖好，并舍家为寺以纪念坐化的僧友。也正因如此，寺院得名为“戒珠寺”。<br />
但我那时却无暇理会这些无恶意的闲人编造出来的流言，而是掏出手机，对着相传<br />
是书圣亲笔所题的“戒珠講寺”牌匾拍了张照，然后将它传给了我的一位男同事：四儿<br />
。四儿与我同批入行，却眼明手快先我一步，于楼下的营业部交往了一位名字中含有“<br />
珠”字的女同事；可惜好景不长，两人拍拖没多久，便因为这样那样不为人知的原因分<br />
了手。结果四儿在那段时间很是消沉，但作为朋友的我却不知该如何慰藉。现下好了，<br />
希望他能明白我的一番苦心&#8230;<br />
出戒珠寺沿蕺山街南行，不远便是躲婆弄和题扇桥，二者皆出自同一则故事：相传<br />
担任会稽内史的王羲之，有次按惯例从住处经蕺山街前往官衙，无意瞥见一位老婆婆守<br />
在桥头，虽格外卖力地叫卖自己的六角扇，生意却丝毫不见起色。生出恻隐之心的王羲<br />
之，停步在她的扇面上各题了几个字，然后对面露愠色的老婆婆说：“老人家，妳莫要<br />
生气！这扇子妳拿去对人讲是王右军题的字，我包妳每柄卖出百钱！”将信将疑的老婆<br />
婆如法炮制，果然扇子很快便被抢购一空。因此，那座单孔石拱桥便得名为“题扇桥”<br />
；桥头后又立一碑，由有“当代卫夫人”之称的女书法家萧娴亲题“晉王右軍題扇橋”<br />
七个大字。<br />
可惜作为质朴的劳动人民一员的老婆婆，在尝到甜头后明显没有见好就收的觉悟，<br />
次日带了更多的六角扇守在桥头等书圣题字。如此阵仗，吓得连身为父母官的王羲之也<br />
只能躲在蕺山街旁的里弄，等老婆婆苦等未果自行离去后方敢现身，于是又留下了“躲<br />
婆弄”的地名。沿躲婆弄西行不远，则是位于笔飞弄，曾任中华民国首任教育总长的蔡<br />
元培的故居。<br />
再说府山，府山因山形卧龙，在南宋以前被称作卧龙山。直至庆元四年（西元<br />
1198年），时任平海军副都统制的黄府在此征剿倭寇有功，当地百姓念其功绩特将卧龙<br />
山更名为府山。府山之顶，就是相传为范蠡所建的飞翼楼，以及吴越王钱鏐所建的蓬莱<br />
阁。在绍兴的建城史上，不论是卧薪尝胆的越王姒勾践，还是临时驻跸的宋高宗赵构，<br />
都曾将府山作为王宫的所在。作为遗迹，至今在府山的南麓，还保留有相传是绍兴知府<br />
汪纲于嘉定十五年（西元1222年）所建的越王台。台上建有越王殿，殿前有一眼清白泉<br />
，相传是宝元二年（西元1039年），时任越州知州的范仲淹为解决百姓饮水困难所掘，<br />
泉畔另建有清白亭。<br />
相传吴越王钱弘倧让位于其弟钱弘俶后，便移居越州，于卧龙山中散养花鸡为乐。<br />
这些花鸡便是如今被称为中国八大名鸡品种之一的萧山鸡的前身了；而始创于清朝道光<br />
年间的百年老店兰香馆的看家名菜：清汤越鸡，便是以饮卧龙山泉长大的萧山鸡烹煮而<br />
成。此外，兰香馆另有两道绍兴名菜：头肚醋鱼和梅干菜扣肉。头肚醋鱼的原料以鉴湖<br />
所产鲢鱼为佳――幼时，我那身为资深老饕的叔叔，曾以四大家鱼为例对我言传身教：<br />
“青鱼食尾，草鱼食腰，鲢鱼食肚，鳙鱼食头”，看来所言非虚；而梅干菜焖肉的原料<br />
则是以百脑芥菜晒制的梅干菜，及金华两头乌腹部的细皮薄膘五花条肉。<br />
府山的东北隅，则是越国另一位大夫文种的坟墓。在辅佐越王姒勾践攻灭吴国报了<br />
一粪之辱后，功成名就的文种却并未听进自己同僚范蠡那番“飞鸟尽，良弓藏；狡兔死<br />
，走狗烹”的劝告，毅然决然继续留下为官。结果，便被可共患难却不可共富贵的越王<br />
姒勾践赐剑自刎：“大夫曾授寡人伐吴七术，寡人只用了其中三术便灭了吴国。剩下的<br />
四术，就有劳大夫前往黄泉去教寡人的先王了！”而这时的范蠡，早已接盘了中国四大<br />
美女之一的施夷光，泛舟于五湖之内了。<br />
府山西巅是民国十九年（西元1930年），为纪念英勇就义的秋瑾烈士而建的风雨亭<br />
，亭名取自“鉴湖女侠”临刑前的绝笔“秋风秋雨愁煞人”。府山南麓是新建的绍兴博<br />
物馆，内藏一把越王姒勾践的玄孙姒翳所用的青铜越王剑（不光剑）；博物馆西侧则是<br />
纪念被后世誉为“商圣”的范蠡的范大夫祠。府山北麓是光绪三十一年（西元1905年）<br />
，光复会领导人徐锡麟和陶成章为联络各地会党、培养军事干部而创建的大通学堂；学<br />
堂东侧则是光绪二十九年（西元1903年），徐树兰所建的中国第一家近代公共图书馆：<br />
古越藏书楼。<br />
出古越藏书楼西行不远，便是绍兴城市广场。广场的东南角矗立着一座始建于天建<br />
三年（西元504年），重建于永乐元年（西元1403年）的六角七层浮屠：大善塔。塔下原<br />
有大善寺，可惜在清朝咸丰年间，毁于清军与太平军的战火。过大善塔沿解放北路南下<br />
，遇府横街便到了秋瑾烈士舍生取义之地：古轩亭口，这里建有一座同样于民国十九年<br />
（西元1930年）落成的秋瑾烈士纪念碑，碑文为时任中法大学校长的蔡元培所撰。<br />
就在古轩亭口附近，坐落着绍兴另两家有名的老字号餐馆：始创于民国十四年（西<br />
元1925年）的荣禄春点心店，拿手小吃是以湖州道场山所产荷叶垫底的鲜肉小笼；而始<br />
创于西元1950年的同心楼饭店，拿手小吃则是生煎包。<br />
而从绍兴城市广场西侧的仓桥直街南下，过秋风亭和春波亭，就到了曾获联合国教<br />
科文组织“亚太地区文化遗产保护优秀奖”的仓桥直街历史街区了。仓桥直街沿府河而<br />
建，而这条曾经分隔了山阴与会稽两县的府河，自北向南依次架有仓桥、龙门桥、宝珠<br />
桥、府桥、石门桥、酒务桥、西观桥、凰仪桥等多座石板桥，为绍兴古城平添了不少水<br />
乡风貌。<br />
沿仓桥直街行至前观巷，再拐进其间的大乘弄，便到了与解缙、杨慎并称“明代三<br />
大才子”的徐渭的故居：青藤书屋。书屋原名榴花书屋，直至崇祯十六年（西元1643年<br />
），刘宗周的弟子，与崔子忠并称“南城北崔”的画家陈洪绶移居至此，为纪念这位自<br />
号“青藤山人”的才子方改作“青藤书屋”。而“扬州八怪”之一的郑板桥，同样被这<br />
位旷世奇才心生钦佩，甚至不惜为此自刻一印曰“青藤門下牛馬走”；若干年后，同样<br />
的招式被王小波的书迷学去，自诩为“王小波门下走狗”。<br />
至于塔山，则以山顶的应天塔得名。应天塔本是东晋时，由与孙绰并称“一时文宗<br />
”的许询与沙门昙彦共建。至元徽元年（西元473年），因惠基法师在塔下建成宝林寺，<br />
而被称作宝林塔；到了乾符元年（西元874年），宝林寺改名为应天寺，塔也嫁鸡随鸡成<br />
了应天塔。相传姒勾践曾在塔山建怪游台以观天象，造就了我国最早的天文台。<br />
塔山东麓是供奉身为东方净琉璃世界教主的药师佛的药师庵；庵堂对面则是由许询<br />
舍宅为寺而成的祇园寺，后来寺院毁于会昌法难，虽又历经重建更名，却终于未能留存<br />
，如今已成由大能仁寺中伽蓝堂遗址改建的伽蓝殿青年旅舍。塔山南麓则是秋瑾烈士的<br />
故居：和畅堂，取王羲之《兰亭序》中“惠风和畅”之意。出秋瑾故居东行至环城河，<br />
就到了目前浙江境内最大的廊桥：风则江廊桥，桥侧建有绍兴治水纪念馆。<br />
沿环城河北上，到东跨湖桥转为东行，则可见感念马臻的马太守庙。马臻于永和五<br />
年（西元140年）到任会稽太守，随即征用民工开挖鉴湖，使得绍虞平原从此免收旱涝之<br />
灾，为会稽郡治迁移山阴奠定了基础。但因开挖湖塘得罪了当地豪强，次年便被诬告致<br />
死，后归葬于马太守庙附近的利济王墓。<br />
出了马太守庙便是鉴湖，湖水向东一路延展至柯岩，景区内有一座依据鲁迅作品而<br />
建，集中体现绍兴水乡风情的鲁镇。柯岩北面不远有栋由城隍庙改建而成的柯城寺，出<br />
柯城寺沿浙东运河西行数米，则是在中国音乐史上享有盛名的柯亭。柯亭，又名高迁亭<br />
，相传东汉著名才女蔡文姬的父亲蔡邕，因得罪中常侍王甫的弟弟五原太守王智而避难<br />
江南；在一日宿于此亭后，独具慧眼的蔡邕取下亭内东沿第十六根竹椽制成美笛，便是<br />
与焦尾琴齐名的柯亭笛了。后来此笛落入后世称为“笛圣”的桓伊手中，在京城建康又<br />
创出另一番佳话。<br />
在浙东运河岸边，就是元和十年（西元815年），担任浙东观察史的孟简所建的古纤<br />
道。纤道或傍岸临水，或飞架河上，沿浙东运河绵延数百里，全部以青条石铺就而成，<br />
号为“白玉长堤”。是乘坐绍兴当地特有的乌篷船，观赏“白玉长堤路，乌篷小画船”<br />
美景的绝佳去处。而当年凿山取石后的遗景，便是位于会稽城东西两侧的东湖与柯岩了<br />
；其中东湖更被誉为“天下第一水石盆景”，与浙江西湖、嘉兴南湖并称浙江三大名湖<br />
。<br />
若从东跨湖桥南下，便是与兄袁宗道、弟袁中道合称“公安三袁”的公安派首领袁<br />
宏道眼中，与杭州西湖俱属清奇的山阴道了。山阴道上起东跨湖桥，下抵盛产香榧的诸<br />
暨枫桥古镇。一路千岩竞秀、万壑争流，引得王羲之的幼子王献之都不由赞叹道：“山<br />
阴道上行，山川自相映发，使人应接不暇！”<br />
沿山阴道南行十数公里至兰渚山下，便是闻名遐迩的兰亭了。因姒勾践曾在此植兰<br />
，汉代设置驿亭时便得名“兰亭”，但真正令其名声大噪的，却是永和九年（西元353年<br />
）三月初三的一次修禊：兰亭集会。集会最终以时任会稽内史的王羲之，以鼠须笔在蚕<br />
茧纸上即兴挥毫而成的《兰亭集序》宣告结束。这便是后世所谓的“天下第一行书”了<br />
，可惜最后却被唐太宗李世民带进了他的昭陵；如今仅留唐代书法家虞世南、褚学良、<br />
冯承素三人所摹的摹本藏于北京故宫博物院。<br />
而由绍兴知府沈启于嘉靖二十七年（西元1548年）重建的兰亭，则以“三碑十一景<br />
”而闻名于江南。其中的三碑，分别是相传由王羲之与王献之父子共书而成的鹅池碑（<br />
又称“父子碑”），由热衷下江南的爱新觉罗·玄烨手书而成的兰亭碑（又称“君臣碑<br />
”），以及题字狂魔爱新觉罗·弘历与自己爷爷共书而成的御碑（又称“爷孙碑”）。<br />
在兰亭的东侧的印山，则埋葬着姒勾践的父亲：上一代越王姒允常。这是迄今为止<br />
经正式发掘而被确认的第一座越王陵，曾被评为西元2008年的全国十大考古新发现。当<br />
然，这并非埋骨于绍兴的惟一君王，在东边更远的富盛镇攒宫山，就有汇聚了宋高宗赵<br />
构的永思陵、宋孝宗赵赵眘的永阜陵、宋光宗赵惇的永崇陵、宋宁宗赵扩的永茂陵、宋<br />
理宗赵昀的永穆陵、宋度宗赵禥的永绍陵的“宋六陵”。至元十五年（西元1278年），<br />
时任江南释教都总统的党项僧人杨琏真珈，在宰相桑哥的支持下盗掘宋六陵，并收南宋<br />
诸帝的遗骸杂以牛马枯骨，最后在临安故宫建一白塔用来镇压。而最惨的宋理宗赵昀，<br />
头盖骨被杨琏真珈制成了饮器骷髅碗，进献给了自己的师父：帝师八思巴，直到洪武二<br />
年（西元1369年），才被驱除了胡虏的明太祖朱元璋派人索回。<br />
话题似乎越扯越远了。回到绍兴城内，在得名自陆游悼亡诗中 “伤心桥下春波绿，<br />
曾是惊鸿照影来”一句的春波弄，有一处始建于宋代的私家园林：沈园。绍兴二十一年<br />
（西元1151年）的春日，陆游在这里重逢了自己的表妹兼前妻唐婉，不禁回想起十年前<br />
自己新婚燕尔时的郎情妾意，于是满含深情地在园中墙上，奋笔题下了那阕脍炙人口的<br />
《钗头凤》。读过此词的唐婉，更是在感慨万千中一病不起，和过一阕同样知名的《钗<br />
头凤》后，很快便郁郁而终了。<br />
与尤袤、杨万里、范成大并称“中兴四大诗人”的陆游，则在淳熙十六年（西元<br />
1189年）罢官还乡，又重新回到了绍兴。数十年的浪迹天涯，非但未能令陆游忘却自己<br />
的凄婉情事，反而在其离家渐远的每一步脚印，都深深刻下了唐婉香消玉损的倩影。还<br />
乡的陆游，又忍不住数次前去沈园缅怀，留下了十数篇缱绻的诗文，造就了沈园“爱情<br />
主题公园”的赫赫声名。<br />
近千年以后，因追慕这段爱情故事的红男绿女纷至沓来，或于白昼执手游园，或于<br />
黑夜拥坐听曲，末了用领取的仿制宋钱“沈园通宝”换一枚许愿宝牒，写上愿望再珍而<br />
重之地缠在园内曲曲绕绕的回廊上祈求幸福。早在王屋山下已经过类似洗礼的我，却深<br />
知以他们的年龄和阅历，其实多是不解其中滋味的；但还是东施效颦换取了一枚许愿宝<br />
牒，借许嵩的歌名写下“妳们的恋爱是对生命的严重浪费”十四个字，将其狠狠绑在了<br />
那群满溢着爱情味道的同类之间！<br />
沈园的东侧是私立的绍兴越国文化博物馆，对面便号称绍兴“镇城之宝”的鲁迅故<br />
里。原名周树人的鲁迅，其祖居（周家老台门）、故居（周家新台门）、求学的私塾（<br />
三味书屋）、嬉戏的菜园（百草园），以及后来落成的鲁迅纪念馆均在这里；甚至连他<br />
笔下的阿Q时常出现的土谷祠，也能寻到踪迹。<br />
至于同样出现在他笔下，创建于光绪二十年（西元1894年）的咸亨酒店，也在咫尺<br />
之远的都昌坊口。于店内效仿《孔乙己》中的描写，排出几文大钱，温一碗醇香的太雕<br />
黄酒，叫一碟入味的茴香豆或手剥笋，自是再好不过的享受。若是有更多的闲暇，再上<br />
一道以镜湖青鱼制成的糟青鱼干、一盘以鉴湖青虾制成的绍式虾蛋、一碗以鲁迅笔下拥<br />
有莲房一般果实的木莲制成的木莲羹，更是别有一番滋味！就算出了店门，街旁吴字坊<br />
所售的油炸臭豆腐、高老太糕点店所售的奶油小攀，也足以令人食指大动。<br />
而周树人的远房亲戚，中国人民共和国国务院的首位总理：周恩来，其祖居百岁堂<br />
也位于绍兴城内的保佑桥河沿。在百岁堂的东侧，是绍兴十四年（西元1144年），由绍<br />
兴知府莫将修建，纪念与张旭、包融、张若虚合称“吴中四士”的贺知章的唐秘书监贺<br />
公祠。<br />
此去西行不远，则是始建于南宋嘉泰年间的八字桥。作为中国最早的“立交桥”，<br />
八字桥因两桥相对而斜，形如“八”字而得名。站在桥头，便可望见城外相传曾为施夷<br />
光教习歌舞之处的西施山。在八字桥的南北，分别架有广宁桥与东双桥两座古桥；桥东<br />
则是绍兴汽车东站，后来我从那里搭乘短途客车前去了嵊州祭祖。<br />
嵊州，是被誉为“中国歌剧”的越剧的故乡，为绍兴下辖的一个县级市。最早于西<br />
汉景帝四年（西元前153年）置县，因剡溪流经县城而名剡县。宣和三年（西元1121年）<br />
，越州统帅刘韦合领兵镇压响应方腊起义的仇道人时，因“剡”字有兵火之象，奏请宋<br />
徽宗赵佶将剡县改名为嵊县，取境内四山相合（东簟山、西白山、南黄山、北雩山）之<br />
意。<br />
在绍兴的次夜，我宿在塔山东麓的伽蓝殿青年旅舍，无意结识了两名各自单独出游<br />
的姑娘，一名来自温州，一名则来自更远的广州。因为相谈甚欢的缘故，两位姑娘相约<br />
明日一起去城东的吼山参加一年一度的桃花节，并邀我同去。现在回想起来，这可能便<br />
是我在从一座城市不停奔赴另一座城市的旅途中的首次艳遇了。但作为一名琅琊王氏的<br />
后人，虑及假期的最后一天便是清明，还是义无反顾地拒绝了她们。于是，在次日的凌<br />
晨共食了一餐绍兴当地的老汤面疙瘩后，我又再次孤身一人踏上了行程。<br />
自绍兴汽车东站，沿会稽内史贺循――说来也巧，这位后来被晋元帝司马睿追赠的<br />
司空，其孙女便嫁给了王羲之六子王操之为妻――于西晋永嘉年间所开凿的浙东运河一<br />
路东行，至曹娥江边便到了号称“江南第一庙”的曹娥庙。<br />
曹娥江原名舜江，因虞舜王姚重华避丹朱之乱至此而得名。至今，在曹娥江东岸的<br />
龙山西南隅，仍留有一口据传是虞舜王亲掘的舜井；在西岸的舜耕公园，则有祭祀姚重<br />
华的舜王庙和虞舜宗祠。在舜耕公园的东侧，就坐落着为祭祀于汉安二年（西元143年）<br />
端午因投江救父溺水而亡的孝女，而由上虞县令度尚在元嘉元年（西元151年）所建的曹<br />
娥庙。在以孝治天下的汉朝，曹娥此举无疑是莫高的德行，于是连舜江也为此改了名。<br />
庙中立有一方曹娥碑，碑文原是建庙时，由度尚的弟子邯郸淳所书；避难的蔡邕闻<br />
讯来观后，还曾在碑阴另书了“黄绢幼妇，外孙齑臼”的隐语，这八字隐语后来被视作<br />
中国最早的字谜，并由此开创了灯谜十八格中的“曹娥格”。但此碑却在三国时期湮没<br />
，而在升平二年（西元358年）由王羲之再次书就，可惜好景不长，书圣所书的碑也未能<br />
逃脱毁灭的命运，仅留绢本手迹藏于沈阳的辽宁省博物馆内。至于现存的曹娥碑，则是<br />
在元祐八年（西元1093年），由时任越州知州，同时兼具王安石之婿、蔡京之弟双重身<br />
份的蔡卞重新书写而成。<br />
溯曹娥江一路南下，经过位于东山湖畔，被东晋太傅谢安演绎了“东山再起”一词<br />
的东山景区；以及位于车骑山上，曾率八万北府兵在淝水之战中击溃八十余万前秦军的<br />
车骑将军，同时也是谢安之侄的谢玄的故宅；等到了三界镇，滔滔江水便换了在上游的<br />
名字：剡溪。<br />
剡溪，作为古代山阴与剡县之间最主要的交通要道，真正大放异彩却是在一出“雪<br />
夜访戴”的任诞往事中：王羲之的五子王徽之住在山阴，一日半夜醒来见窗外忽降大雪<br />
，便一边独酌一边吟咏左思的《招隐诗》。不想吟咏之间，突然忆起了住在剡县的琴师<br />
戴逵，于是不待天明，漏夜乘舟溯剡溪前去造访。谁知好容易于次日破晓抵达戴逵家门<br />
时，却又不等登门便折身而返。驾舟的仆人不解其意，忍不住询问原因，王徽之方才答<br />
道：“吾本乘兴而行。兴尽而返，何必见戴？”<br />
因此番恣意行为，获得谢安“随行之人，肆意妄为。非是贯彻始终之辈！”评语的<br />
黄门侍郎王徽之，便是我家中那本族谱所攀附的先祖了。他的故事，我还会在以后的篇<br />
幅之中继续提及，现在且跟随他的脚步继续前行。等在溪水西岸望见一座六层19米高的<br />
风水塔――那是乾隆三十八年（西元1773年），剡县教喻李增倡所捐建的天章塔――便<br />
到了嵊州市内了。<br />
在嵊州汽车东站换乘乡村巴士，约半小时后便可到金庭镇卧猊山下的华堂村。这是<br />
侍中王操之的后人聚居之地，村中至今保有一座建于正德七年（西元1512年）的王氏祠<br />
堂。村子东面，在五代道士杜光庭所编《洞天福地岳渎名山记》中号称“金庭崇妙天”<br />
的金庭山麓，有一栋于永初十七年（西元440年）改建而成的道观，便是王羲之生前最后<br />
的故居：金庭观。<br />
观内大殿中端坐的是右军将军王羲之，及其坦腹东床换来的贤妻：太尉郗鉴的爱女<br />
郗璿；两侧则依次站着他们的八位儿女：长子王玄之、次子王凝之、三子王涣之、四子<br />
王肃之、五子王徽之、六子王操之、幼子王献之及爱女王梦姜。七位儿子均随父亲出席<br />
过兰亭集会，但因长子早逝、四子热衷八卦，仅有五人传承了家学：凝之得其韵、涣之<br />
得其貌、徽之得其势、操之得其体、献之得其源。<br />
古人讲究避讳，作为东晋门阀第一望族的琅琊王氏自然不能幸免，但为何王羲之的<br />
七个儿子却不避家讳？这是因受家族传统影响，他们均是天师道的信徒而致，名字中的<br />
“之”字便是天师道成员的标识，类似的还有在神瑞二年（西元415年）改革天师道的天<br />
师寇谦之。<br />
七子之中，次子王凝之对天师道最为虔诚。隆安三年（西元399年），后世被视为中<br />
国海盗业祖师的孙恩于舟山起兵反晋，在渡海攻克上虞后，领兵包围了会稽府城。时任<br />
会稽内史的王凝之，非但没有招募兵勇守城，反而起坛作法扬言请下鬼兵协防。结果城<br />
破被俘，连同子女一起，被同样是天师道信徒的孙恩杀害，仅有因咏絮之才闻名于世的<br />
妻子谢道韫（谢玄的姊姊）携外孙刘涛得以幸免。<br />
而名声最赫的王徽之、王献之兄弟，明显是继承了祖先王祥、王览兄友弟悌的传统<br />
。太元十一年（西元386年），曾在《世说新语》的记载中欢腾无比的两兄弟均已病入膏<br />
肓。作为天师道的信徒，王徽之笃信借助法术，可以将一个人的阳寿转移到另一个人身<br />
上，于是这位昔日的黄门侍郎，派人请来一位方士：“我的才能不如弟弟，请你拿我的<br />
阳寿为他续命吧！”结果，却被洞察了天机的方士，毫不留情面地驳回：“能够为他人<br />
续命的人，首先自己要有多余的阳寿。现在你和令弟一样大限将至，又拿什么为其续命<br />
哪？”<br />
未几，背负了半辈子情伤的中书令王献之，抢先一步撒手人寰。虽然家人刻意相瞒<br />
，但天资聪颖的王徽之还是瞧出了端倪：“最近突然听不到子敬（王献之字子敬）的消<br />
息，怕是已经过世了吧？”于是执意起身，乘车前去悼唁。等到在灵床前坐下，吩咐左<br />
右取出弟弟的琴准备抚曲相送时，先前还强作镇定的王徽之，这才发现自己无论如何也<br />
调不出调来，于是放声大恸：“呜呼子敬！与琴俱亡！”没过多久，便也随王献之而去<br />
了。只留下一幅《新月帖》，与弟弟的《廿九日帖》，连同父亲的《姨母帖》与《初月<br />
帖》，在万岁通天二年（西元697年）为女皇武则天命中书舍人崔融集为《宝章集》，后<br />
又称作《万岁通天帖》藏在沈阳的辽宁省博物馆内。<br />
观后的瀑布山下，是于弘治十五年（西元1502年）重修过的王羲之墓。墓地四周遍<br />
植的，是日本著名书法家永保秋光、宫原敏之跨海前来瞻仰时，自东瀛带来的东京樱花<br />
。在和煦春风的轻抚下，一片又一片的花瓣，争前恐后地跃下枝头，在漫天的纷飞凋舞<br />
中最后汇聚为一场粉色的雨，成就了我这辈子见过最美丽的春天！ 与之相比，我的女同<br />
事们相约而去的南京鸡鸣寺、无锡鼋头渚，甚至武汉大学的校园都相形见绌，恐怕惟有<br />
远在京都的醍醐寺差相仿佛。<br />
在落英纷飞下酣眠的王羲之，心中却是有所不甘的。这位淮南内史王旷的次子，少<br />
时与东海太守王承之子王述齐名。不过同样曾任会稽内史的王述，却是太原王氏一门中<br />
出了名的急性子，曾有一次吃鸡蛋时，因用筷子屡夹不中而勃然大怒，气得将蛋掷于地<br />
上举脚便踩。奈何蛋壳圆滑，在地上转个不停，以致连连踩空，惹得王述狂性大发，捡<br />
起鸡蛋投入口中，一通猛嚼后又吐在地上方才罢休。<br />
得知此事的王羲之，为此很是轻视王述。后来王述因母丧丁忧，接替他担任会稽内<br />
史的王羲之，非但未去吊唁，还私下议论说：“以怀祖（王述字怀祖）的才具，作尚书<br />
刚刚好，至多临老时再担任仆射。要封疆会稽，真是难为他了！”谁想天算不如人算，<br />
守孝期满的王述被晋穆帝司马聃委任为扬州刺史，反倒成了王羲之的顶头上司。耻居其<br />
下的王羲之，在永和十一年（西元355年）率子前往父母墓前立誓辞官，这才挂印而去归<br />
隐并埋骨在了金庭山麓。<br />
为此，忿忿不平的书圣，还迁怒自己在世的六个儿子：“我与怀祖齐名，而今却地<br />
位悬殊，就是因为汝等不肖子比不上王坦之的缘故啊！”王坦之（字文度）是王述的儿<br />
子，弱冠便享有盛名，与王羲之的外侄郗超（字嘉宾）并称“盛德绝伦郗嘉宾，江东独<br />
步王文度”。由此可知，即便贵为书坛“小圣”的王献之，童年依样生活在别人家孩子<br />
的阴影之下。<br />
而今，载于临川王刘义庆编纂的笔记小说《世说新语》中的这些往事俱往矣，只剩<br />
下书圣一人长眠。行过祭礼后，趁着墓园内游人寥寥，我从行囊内掏出一埕青梅酒，盘<br />
膝坐在那方重立于弘治十年（西元1497年）的墓碑前，开始了与自己先祖跨越千年的畅<br />
谈：向他展示自己根据刘禹锡《乌衣巷》诗中“旧时王谢堂前燕，飞入寻常百姓家”一<br />
句，托人专门设计的族徽图案；向他倾诉自己同样被迫蛰伏人下，却没有儿子可以拿来<br />
撒气；向他抱怨自己也曾裸了上身卧在海滩的躺椅之上，效仿南蛮参军郝隆显摆自己的<br />
满腹文章，周围那么多大腹便便的大叔，却为何没有一个能慧眼识英？<br />
待到半埕酒入土、半埕酒下肚，我这才起身辞行。因那天除了是清明外，还是另一<br />
个重要的传统节日：上巳――因有祭祀高禖的活动，自先秦起直至唐末，一直堪称是中<br />
国的情人节，远非而今商家炒作出来的七夕所能媲美――所以我没有直接返回南京，而<br />
是在位于萧山的杭州南站稍作停留，取了一份自廿一客预定，名为“心语心愿”的乳脂<br />
奶油蛋糕。<br />
萧山因越王姒勾践在夫椒兵败后撤退至当地的西山，四顾萧然而得名。自元始二年<br />
（西元2年）置县开始便一直属于绍兴，直到西元1959年才划归杭州；且因与绍兴一样通<br />
行吴语太湖片临绍小片，故此我便把这段经历放于本篇来讲。<br />
号称拥有中国最好吃蛋糕的廿一客，因其英文名21Cake的发音酷似21克――传说中<br />
人类灵魂的重量――而俘获了众多花痴少女的心。从专职送货员手中接过覆着冰袋的蛋<br />
糕，我小心翼翼再次踏上了列车，一路如获至宝地将其护送到了南京。那里候着一位博<br />
物馆的女讲解员，是我那些矫情的女同事们借口减肥不愿出门后，我手头仅剩的最后一<br />
张底牌。<br />
总之，在西元2011年4月5日的夜间，于我住处楼下一间肯德基餐厅里――其实照我<br />
当时已小有所成的装逼水平，本是应该选择一家7-11便利店的，但奈何南京不给力，只<br />
得悻悻作罢――我与一名姑娘共食了1磅重的乳脂奶油蛋糕，并把剩下的1磅分给了在座<br />
的路人，借助灵魂所散发出的馨香，与他们共享了上巳的幸福韵味。希望他们今后还能<br />
记得，莫要再落入七夕愈发甚嚣尘上的窠臼。<br />
也就是从那年起，我每年清明的行程便固定在了绍兴。直到今年作为一名谈不上虔<br />
诚的伪道教徒，前去位列四大道教名山之一的武当山参拜，这才改期于春分后的周末前<br />
往，并顺道去了新昌一探唐诗之路。<br />
新昌，与嵊州同处新嵊盆地，直到开平二年（西元908年）才从剡县析出，取“新设<br />
之县，兴隆昌盛”之意。城西石城山下的大佛寺，由昙光法师草创于永和元年（西元<br />
345年），原名隐岳寺。后因在永明四年（西元486年）至天监六年（西元507年）二十年<br />
间，集僧护、僧淑、僧佑三位高僧之力，方才凿就的“江南第一大佛”而得名大佛寺。<br />
此外，开皇十七年（西元597年），佛教天台宗的开宗祖师智顗大师也圆寂于此，至今在<br />
放生池畔的圆寂处还建有其的衣钵纪念塔。<br />
从嵊州经新昌至天台的驿道，便是浙东唐诗之路的精华所在。出新昌沿104国道南行<br />
不远，便是即色宗大师支遁曾隐居于此的沃洲山，今因修建水库而成沃洲湖。支遁性喜<br />
养马放鹤，至今沃洲湖边仍留有养马坡、放鹤峰等遗迹。而保存在沈阳的辽宁省博物馆<br />
，相传由唐代画家韩干所画的《神骏图》，就是描绘支遁爱马的故事。<br />
沃洲湖西畔的真君殿，则是一栋祭祀南宋抗金名帅宗泽的庙宇，庙内原有一间因白<br />
道猷开山、白寂然嗣兴、白居易垂文而得名的三白堂，可惜今已湮没不存，只剩白居易<br />
所作的《沃洲山禅院记》，开篇以“东南山水越为首，剡为面，沃洲、天姥为眉目”，<br />
简明扼要点明了唐诗之路的精要所在。至于湖东畔的刘门山，在刘义庆编纂的志怪小说<br />
《幽明录》中，则是永平五年（西元62年）剡县人刘晨、阮肇进山采药，结果遇到两名<br />
仙女，并与之结为伉俪的地方。<br />
从刘门山溯惆怅溪南下，经刘门坞、桃树坞、燕窠里、九间廊，至位于天姥山麓的<br />
班竹村一路，便是所谓的“桃源仙境”了。班竹村口架有一座始建于东晋的单孔石拱桥<br />
，原名落马桥，相传道教上清派茅山宗的第12代宗师司马承祯，应唐玄宗李隆基征召入<br />
京，行至此桥时突生悔意，故又得名司马悔桥。<br />
过司马悔桥沿古驿道横穿全村，经崇祯五年（西元1632年）徐霞客曾借宿过的天姥<br />
古驿，及咸丰二年（西元1852年）壬子恩科状元章鋆的家祠；等到了村口另一端的龙潭<br />
坑，望见一条分三段跌落的普济瀑，便是登临天姥山的山道了。天姥山在《洞天福地岳<br />
渎名山记》中，与沃洲山同列七十二福地，虽在诗仙李白的《梦游天姥吟留别》诗中一<br />
度扬名立万，却在如今高涨的旅游产业化浪潮中揠旗息了鼓。<br />
因此，在我攀登天姥山主峰班竹山的过程中，一路鲜见人迹。然而，就在我于阒不<br />
见人的山道上汗流浃背地穿行时，耳畔却突然传来一阵吴侬软语的山歌声：“山里山，<br />
弯里弯，萝卜开花出牡丹。牡丹姐姐要嫁人，石榴姐姐做媒人。媒人还勿到，新人呜呜<br />
叫！”就在我疑心自己是否步了刘、阮二人后尘时，却从山道的拐角走出一名姑娘。原<br />
来同是孤身上山的她，行到半道见四下无人所以起了怯意，于是半途而废打起了退堂鼓<br />
，却又在撤退的道路上越走越是心惊，最后不得不唱起山歌来给自己壮胆。<br />
交换过联系方式后，我便唆使其结伴而行。见有人同行，她又动了心。于是我们翻<br />
过班竹山后，又沿着奠基了中国山水诗的谢灵运――容我再次吐槽晋代门阀相互之间的<br />
联姻：谢灵运的母亲刘氏，即是王羲之独女王孟姜的女儿――所开辟的谢公道，一直走<br />
到莲花峰下的天姥寺遗址；那里竖着一方立于广顺元年（西元951年）的石碑，碑上刻着<br />
“李白夢遊天姥處”七个大字。<br />
等返回新昌，夜幕早已四合，于是在街头吃过一碗当地特色的新昌芋饺后，双双入<br />
住了位于城西的一家青年旅舍。因她住在旅舍顶层的阁楼，床铺上方正开着一扇天窗，<br />
于是各自洗漱过后我便去找她看星星。并肩躺倒在摊于地板之上的床铺，透过玻璃天窗<br />
凝视因居于城市而久违了的星空，我王婆卖瓜地开始显摆自己的天文知识，指给她看春<br />
季的四大星象：“参横斗转，狮子怒吼，银河回家，双角东守”。<br />
说到“银河回家”时，她又忍不住在我身旁唱起歌来：“天河对弄堂，家家人家晒<br />
酱缸。天河对笆桩，家家人家吃虾汤。天河对大门，家家人家吃大菱。”扯过一番没头<br />
没脑的话后，也不知是搭错了哪根筋，居然聊起了远在不知还有多远的蜜月旅行。我说<br />
想去冰岛的瓦特纳冰川国家公园，看冰川与火山在极夜北极光的映照下，奏响冰与火的<br />
乐章；而她却想去玻利维亚的乌尤尼盐沼，看日月星辰在天空之镜的倒影中，于自己脚<br />
下熠熠生辉。于是，事情终于像我担心的那样，未能发生令我担心的事。<br />
次日，我由新落成没多久的绍兴北站返回南京。进站前的闲逛中，无意于流经站前<br />
广场的溪流对岸，发现了一片开得正浓的油菜花田。落日的余晖斜斜地倾洒下来，给金<br />
黄的花瓣抹上了一层橙色的胭脂，令我不由想起邂逅的姑娘于山道间探出头来的模样，<br />
于是不禁莞尔，在嘴边轻轻哼起她曾经唱过的那首《牡丹姐姐》。<br />
但我却不曾想到，下次再收到她的讯息时，已是一条发送于拿波里――那她对那不<br />
勒斯的称呼，不知不觉我也学了去――动态。她离她的梦想越来越近了，而我却依然困<br />
守在南京&#8230;</p>
<p>来同是孤身上山的她，行到半道见四下无人所以起了怯意，于是半途而废打起了退堂鼓<br />
，却又在撤退的道路上越走越是心惊，最后不得不唱起山歌来给自己壮胆。<br />
交换过联系方式后，我便唆使其结伴而行。见有人同行，她又动了心。于是我们翻<br />
过班竹山后，又沿着奠基了中国山水诗的谢灵运――容我再次吐槽晋代门阀相互之间的<br />
联姻：谢灵运的母亲刘氏，即是王羲之独女王孟姜的女儿――所开辟的谢公道，一直走<br />
到莲花峰下的天姥寺遗址；那里竖着一方立于广顺元年（西元951年）的石碑，碑上刻着<br />
“李白夢遊天姥處”七个大字。<br />
等返回新昌，夜幕早已四合，于是在街头吃过一碗当地特色的新昌芋饺后，双双入<br />
住了位于城西的一家青年旅舍。因她住在旅舍顶层的阁楼，床铺上方正开着一扇天窗，<br />
于是各自洗漱过后我便去找她看星星。并肩躺倒在摊于地板之上的床铺，透过玻璃天窗<br />
凝视因居于城市而久违了的星空，我王婆卖瓜地开始显摆自己的天文知识，指给她看春<br />
季的四大星象：“参横斗转，狮子怒吼，银河回家，双角东守”。<br />
说到“银河回家”时，她又忍不住在我身旁唱起歌来：“天河对弄堂，家家人家晒<br />
酱缸。天河对笆桩，家家人家吃虾汤。天河对大门，家家人家吃大菱。”扯过一番没头<br />
没脑的话后，也不知是搭错了哪根筋，居然聊起了远在不知还有多远的蜜月旅行。我说<br />
想去冰岛的瓦特纳冰川国家公园，看冰川与火山在极夜北极光的映照下，奏响冰与火的<br />
乐章；而她却想去玻利维亚的乌尤尼盐沼，看日月星辰在天空之镜的倒影中，于自己脚<br />
下熠熠生辉。于是，事情终于像我担心的那样，未能发生令我担心的事。<br />
次日，我由新落成没多久的绍兴北站返回南京。进站前的闲逛中，无意于流经站前<br />
广场的溪流对岸，发现了一片开得正浓的油菜花田。落日的余晖斜斜地倾洒下来，给金<br />
黄的花瓣抹上了一层橙色的胭脂，令我不由想起邂逅的姑娘于山道间探出头来的模样，<br />
于是不禁莞尔，在嘴边轻轻哼起她曾经唱过的那首《牡丹姐姐》。<br />
但我却不曾想到，下次再收到她的讯息时，已是一条发送于拿波里――那她对那不<br />
勒斯的称呼，不知不觉我也学了去――动态。她离她的梦想越来越近了，而我却依然困<br />
守在南京&#8230;</p>
<p>（本文系转载瀚海星云BBS）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sweetytang.com/archives/159.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>让自己故意陷入爱情</title>
		<link>http://www.sweetytang.com/archives/153.html</link>
		<comments>http://www.sweetytang.com/archives/153.html#comments</comments>
		<pubDate>Sat, 15 Feb 2014 15:20:57 +0000</pubDate>
		<dc:creator>牧羊人</dc:creator>
				<category><![CDATA[他山之玉]]></category>
		<category><![CDATA[情人节]]></category>
		<category><![CDATA[爱情]]></category>

		<guid isPermaLink="false">http://www.sweetytang.com/?p=153</guid>
		<description><![CDATA[故意陷入爱情 在人的一生中，能够陷入爱情的机会不多，因为爱情并不像秋天的落叶，俯拾皆是，它像冷热带交界处的落雪，偶尔才会出现。 当爱情降临的时候，除了少数情况，大都只是一个人的感觉，而不是双方的感觉，即使这爱后来得到了对方的回应，它还是可以分出先来后到的。所以爱情的发展不外两种状况：一种得到了回应，一种得不到回应。前者就是一场圆满的爱情，后者就是单恋。有的爱情能够得到强烈的回应（比如王小波就把我对他爱情的回应称为“山呼海啸的响应”）；有的爱情能够得到勉勉强强的回应；有的爱情干脆就得不到回应。 我相信，在这世界上每天发生的无数次爱情当中，多数都得不到回应，只有少数能够得到回应。当然有很多世俗的原因，家庭背景啦，教育背景啦，容貌身材啦，年龄性别啦（说到性别，许多同性恋者会爱上同一性别的异性恋者，而对方本来是喜欢他的，只是因为他的性别无法回应他的爱）。更主要的原因还是两人性情和灵魂的投契程度。人们所说的“缘分”，当然也包括那些世俗的因素，但是更主要的还是那种可以意会不可言传的心灵感应。 既然多数爱情都不会得到回应，人还要不要让自己陷入爱情呢？我的看法是，人可以故意让自己陷入爱情，即使是明知不可能得到回应的爱情。为什么这样说？仅仅因为爱情本身的美好。当人陷入爱情，就像喝醉了酒，处于微醺状态，心境纯粹，愉悦，陶醉，这是一种非常幸福、非常快乐、非常优雅的状态，就像你看到一朵美丽的花朵，你欣赏它，你迷醉于它的美丽，你爱上了它。虽然花朵不会回应你的爱，但是你仍然获得了为它的美所陶醉所痴迷的愉悦感觉。人们总以为单恋是苦多于甜的，其实并非如此，因为对方最多只是不回应、无法回应而已，并不会厌恶你对他的爱恋，只会透过你的爱更加意识到自己的美丽和魅力，就像一朵花不会厌恶别人对它的欣赏一样。如果你爱的对象对你真的厌恶，那只能说明他并不如你想象的那么美好，他觉得自己并没有那么美好，是不值得别人这样来爱他的。如果是这样，就应当放弃你的爱，因为他确是不值得你爱的。 尼采曾长篇累牍地论述日神和酒神，日神就是理性，酒神就是非理性，故意让自己陷入爱情，无论它是否能够得到回应，这种行动就是对酒神的祭拜，让自己陶醉在一种强烈的非理性的情绪之中。就像饮酒放歌一样，这也是一件值得去做的事情。]]></description>
			<content:encoded><![CDATA[<p>故意陷入爱情</p>
<p>在人的一生中，能够陷入爱情的机会不多，因为爱情并不像秋天的落叶，俯拾皆是，它像冷热带交界处的落雪，偶尔才会出现。</p>
<p><span id="more-153"></span>当爱情降临的时候，除了少数情况，大都只是一个人的感觉，而不是双方的感觉，即使这爱后来得到了对方的回应，它还是可以分出先来后到的。所以爱情的发展不外两种状况：一种得到了回应，一种得不到回应。前者就是一场圆满的爱情，后者就是单恋。有的爱情能够得到强烈的回应（比如王小波就把我对他爱情的回应称为“山呼海啸的响应”）；有的爱情能够得到勉勉强强的回应；有的爱情干脆就得不到回应。</p>
<p>我相信，在这世界上每天发生的无数次爱情当中，多数都得不到回应，只有少数能够得到回应。当然有很多世俗的原因，家庭背景啦，教育背景啦，容貌身材啦，年龄性别啦（说到性别，许多同性恋者会爱上同一性别的异性恋者，而对方本来是喜欢他的，只是因为他的性别无法回应他的爱）。更主要的原因还是两人性情和灵魂的投契程度。人们所说的“缘分”，当然也包括那些世俗的因素，但是更主要的还是那种可以意会不可言传的心灵感应。</p>
<p>既然多数爱情都不会得到回应，人还要不要让自己陷入爱情呢？我的看法是，人可以故意让自己陷入爱情，即使是明知不可能得到回应的爱情。为什么这样说？仅仅因为爱情本身的美好。当人陷入爱情，就像喝醉了酒，处于微醺状态，心境纯粹，愉悦，陶醉，这是一种非常幸福、非常快乐、非常优雅的状态，就像你看到一朵美丽的花朵，你欣赏它，你迷醉于它的美丽，你爱上了它。虽然花朵不会回应你的爱，但是你仍然获得了为它的美所陶醉所痴迷的愉悦感觉。人们总以为单恋是苦多于甜的，其实并非如此，因为对方最多只是不回应、无法回应而已，并不会厌恶你对他的爱恋，只会透过你的爱更加意识到自己的美丽和魅力，就像一朵花不会厌恶别人对它的欣赏一样。如果你爱的对象对你真的厌恶，那只能说明他并不如你想象的那么美好，他觉得自己并没有那么美好，是不值得别人这样来爱他的。如果是这样，就应当放弃你的爱，因为他确是不值得你爱的。</p>
<p>尼采曾长篇累牍地论述日神和酒神，日神就是理性，酒神就是非理性，故意让自己陷入爱情，无论它是否能够得到回应，这种行动就是对酒神的祭拜，让自己陶醉在一种强烈的非理性的情绪之中。就像饮酒放歌一样，这也是一件值得去做的事情。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sweetytang.com/archives/153.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>夜的钢琴曲</title>
		<link>http://www.sweetytang.com/archives/151.html</link>
		<comments>http://www.sweetytang.com/archives/151.html#comments</comments>
		<pubDate>Mon, 28 Oct 2013 15:03:28 +0000</pubDate>
		<dc:creator>牧羊人</dc:creator>
				<category><![CDATA[他山之玉]]></category>
		<category><![CDATA[钢琴曲]]></category>

		<guid isPermaLink="false">http://www.sweetytang.com/?p=151</guid>
		<description><![CDATA[四月，天蓝蓝，很忙很忙，一直在路上。 出世的名士不论是锋芒毕露，还是风姿卓然，图的是热闹与名头。避世的隐士大 多独善其身，以拙朴以世外高人藏着掖着，讲究的是野渡舟自横。 古代的游侠呼朋引伴行走江湖，埋头读书的少年郎也会游学周游四方。有人成了 名士，有人做了隐士梅妻鹤子。无论是哪种人，他们见到美景，若无人分享，明知言传 书画都不能及，还是会努力记下描出它们在心中的模样。 我猜他们是渴望不拘若干年后有人能意会，也可在虚空中击掌一和，冥冥中沧海 一声笑此起彼和。我猜是这江山太多娇知己太难寻，历来壮志可酬的人不过十之一二， 而寂寞亘古陪伴，他们若不以诗书词画传世未免太无趣。 清明节，我在去黄山的路上，微风掠过浅草滩，潺潺溪流，水墨画般屋舍，袅袅 炊烟，桃红柳绿，草青花黄。它们既安静又热闹。我就在这绿色黄色粉色紫色蓝色的色 彩带里沉醉游走，在自然盎然蓬勃的生机里产生了以上的想法。 好友铭说，你太奢侈了，眼睛很奢侈，心也很奢侈，我不想跟你说话了。我已经 对自己很小气，很少的旅行。也许还不够。现在的我只会在去往风景的路上跟自己说这 样一些文艺的话。大家有什么不同呢，同样会在深夜时饥肠辘辘，同样会穿着牛仔裤夹 着夹脚拖穿行在街道…… 还是有不一样的。有人移民了，有人变心了，有人结婚又离了，有人再不写诗写 从 A到Z了，有人成了新四有新人（有才有貌有车有房），有人度了光阴一无所获，有人说 会一直在其实早已离开……这就是生活吧，有生有活。 对不起，我想向自己道歉，你怎么可以不长大不改变。 谢谢你，我想向自己感谢，你没有变，可是请好一点。 “天下之大，共你面对困难便记得当初/天下之大 不要给我/只怕 得到所有忘掉爱 甚么”               —《天下之大*许志安》 天下之大，不是我走了多少地方，而是我一直渴望爱与被爱。 …… 好不容易从西海大峡谷爬上来，腿肚子还在抽筋。又要马不停蹄转去石头城，当 然，我想念这个城，很想。这种饮鸩止渴的想念，并非突如其来，也不知能否以走走看 看纾解。离了老友的城还是那个城，有一些记忆还在。可能是年龄渐长的缘故，新的东 西很容易撒手，而老旧的执念，梦魂萦绕。 夜的钢琴曲还在响着，我睡去了。希望能梦见一次回眸，一抹浅笑，一个温暖的 拥抱。]]></description>
			<content:encoded><![CDATA[<p>四月，天蓝蓝，很忙很忙，一直在路上。</p>
<p>出世的名士不论是锋芒毕露，还是风姿卓然，图的是热闹与名头。避世的隐士大<br />
多独善其身，以拙朴以世外高人藏着掖着，讲究的是野渡舟自横。<span id="more-151"></span></p>
<p>古代的游侠呼朋引伴行走江湖，埋头读书的少年郎也会游学周游四方。有人成了<br />
名士，有人做了隐士梅妻鹤子。无论是哪种人，他们见到美景，若无人分享，明知言传<br />
书画都不能及，还是会努力记下描出它们在心中的模样。</p>
<p>我猜他们是渴望不拘若干年后有人能意会，也可在虚空中击掌一和，冥冥中沧海<br />
一声笑此起彼和。我猜是这江山太多娇知己太难寻，历来壮志可酬的人不过十之一二，<br />
而寂寞亘古陪伴，他们若不以诗书词画传世未免太无趣。</p>
<p>清明节，我在去黄山的路上，微风掠过浅草滩，潺潺溪流，水墨画般屋舍，袅袅<br />
炊烟，桃红柳绿，草青花黄。它们既安静又热闹。我就在这绿色黄色粉色紫色蓝色的色<br />
彩带里沉醉游走，在自然盎然蓬勃的生机里产生了以上的想法。</p>
<p>好友铭说，你太奢侈了，眼睛很奢侈，心也很奢侈，我不想跟你说话了。我已经<br />
对自己很小气，很少的旅行。也许还不够。现在的我只会在去往风景的路上跟自己说这<br />
样一些文艺的话。大家有什么不同呢，同样会在深夜时饥肠辘辘，同样会穿着牛仔裤夹<br />
着夹脚拖穿行在街道……</p>
<p>还是有不一样的。有人移民了，有人变心了，有人结婚又离了，有人再不写诗写<br />
从<br />
A到Z了，有人成了新四有新人（有才有貌有车有房），有人度了光阴一无所获，有人说<br />
会一直在其实早已离开……这就是生活吧，有生有活。</p>
<p>对不起，我想向自己道歉，你怎么可以不长大不改变。<br />
谢谢你，我想向自己感谢，你没有变，可是请好一点。</p>
<p>“天下之大，共你面对困难便记得当初/天下之大 不要给我/只怕 得到所有忘掉爱<br />
甚么”               —《天下之大*许志安》</p>
<p>天下之大，不是我走了多少地方，而是我一直渴望爱与被爱。<br />
……</p>
<p>好不容易从西海大峡谷爬上来，腿肚子还在抽筋。又要马不停蹄转去石头城，当<br />
然，我想念这个城，很想。这种饮鸩止渴的想念，并非突如其来，也不知能否以走走看<br />
看纾解。离了老友的城还是那个城，有一些记忆还在。可能是年龄渐长的缘故，新的东<br />
西很容易撒手，而老旧的执念，梦魂萦绕。</p>
<p>夜的钢琴曲还在响着，我睡去了。希望能梦见一次回眸，一抹浅笑，一个温暖的<br />
拥抱。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sweetytang.com/archives/151.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DB2中数据类型</title>
		<link>http://www.sweetytang.com/archives/147.html</link>
		<comments>http://www.sweetytang.com/archives/147.html#comments</comments>
		<pubDate>Wed, 04 Sep 2013 15:24:03 +0000</pubDate>
		<dc:creator>牧羊人</dc:creator>
				<category><![CDATA[师夷长技]]></category>
		<category><![CDATA[DB2]]></category>
		<category><![CDATA[数据类型]]></category>

		<guid isPermaLink="false">http://www.sweetytang.com/?p=147</guid>
		<description><![CDATA[导读：DB2数据库内置数据类型可以分成数值型(numeric)、字符串型(character string)、图形字符串(graphic string)、二进制字符串型(binary string)或日期时间型(datetime)。还有一种叫做 DATALINK 的特殊数据类型。DATALINK 值包含了对存储在数据库以外的文件的逻辑引用。 数值型数据类型包括 SMALLINT、INTEGER、BIGINT、DECIMAL(p,s)、REAL 和 DOUBLE。所有数值都有符号和精度。精度是指除符号以外的二进制或十进制的位数。如果数字的值大于等于零，就认为符号为正。 *小整型，SMALLINT：小整型是两个字节的整数，精度为 5 位。小整型的范围从 -32,768 到 32,767。 *大整型，INTEGER 或 INT：大整型是四个字节的整数，精度为 10 位。大整型的范围从 -2,147,483,648 到 2,147,483,647。 *巨整型，BIGINT：巨整型是八个字节的整数，精度为 19 位。巨整型的范围从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。 *小数型，DECIMAL(p,s)、DEC(p,s)、NUMERIC(p,s) 或 NUM(p,s)：小数型的值是一种压缩十进制数，它有一个隐含的小数点。压缩十进制数将以二-十进制编码(binary-coded decimal，BCD)记数法的变体来存储。小数点的位置取决于数字的精度(p)和小数位(s)。小数位是指数字的小数部分的位数，它不可以是负数，也不能大于精度。最大精度是 31 位。小数型的范围从 -10**31+1 到 10**31-1。 &#8230; <a href="http://www.sweetytang.com/archives/147.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p align="left"><strong>导读：DB2数据库</strong>内置<strong>数据类型</strong>可以分成数值型(numeric)、字符串型(character string)、图形字符串(graphic string)、二进制字符串型(binary string)或日期时间型(datetime)。还有一种叫做 DATALINK 的特殊数据类型。DATALINK 值包含了对存储在数据库以外的文件的逻辑引用。</p>
<p align="left">数值型数据类型包括 SMALLINT、INTEGER、BIGINT、DECIMAL(p,s)、REAL 和 DOUBLE。所有数值都有符号和精度。精度是指除符号以外的二进制或十进制的位数。如果数字的值大于等于零，就认为符号为正。<span id="more-147"></span></p>
<p align="left"><strong>*</strong><strong>小整型，SMALLINT：</strong>小整型是两个字节的整数，精度为 5 位。小整型的范围从 -32,768 到 32,767。</p>
<p align="left"><strong>*</strong><strong>大整型，INTEGER 或 INT：</strong>大整型是四个字节的整数，精度为 10 位。大整型的范围从 -2,147,483,648 到 2,147,483,647。</p>
<p align="left"><strong>*</strong><strong>巨整型，BIGINT：</strong>巨整型是八个字节的整数，精度为 19 位。巨整型的范围从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。</p>
<p align="left"><strong>*</strong><strong>小数型，DECIMAL(p,s)、DEC(p,s)、NUMERIC(p,s) 或 NUM(p,s)：</strong>小数型的值是一种压缩十进制数，它有一个隐含的小数点。压缩十进制数将以二-十进制编码(binary-coded decimal，BCD)记数法的变体来存储。小数点的位置取决于数字的精度(p)和小数位(s)。小数位是指数字的小数部分的位数，它不可以是负数，也不能大于精度。最大精度是 31 位。小数型的范围从 -10**31+1 到 10**31-1。</p>
<p align="left"><strong>*</strong><strong>单精度浮点数(Single-precision floating-point)，REAL：</strong>单精度浮点数是实数的 32 位近似值。数字可以为零，或者在从 -3.402E+38 到 -1.175E-37 或从 1.175E-37 到 3.402E+38 的范围内。</p>
<p align="left"><strong>*</strong><strong>双精度浮点数(Double-precision floating-point)，DOUBLE，DOUBLE PRECISION 或 FLOAT：</strong>双精度浮点数是实数的 64 位近似值。数字可以为零，或者在从 -1.79769E+308 到 -2.225E-307 或从 2.225E-307 到 1.79769E+308 的范围内。</p>
<p align="left">字符串是字节序列。字符串包括 CHAR(n) 类型的定长字符串和 VARCHAR(n)、LONG VARCHAR 或 CLOB(n) 类型的变长字符串。字符串的长度就是序列中的字节数。</p>
<p align="left"><strong>*</strong><strong>定长字符串，CHARACTER(n) 或 CHAR(n)：</strong>定长字符串的长度介于 1 到 254 字节之间。如果没有指定长度，那么就认为是 1 个字节。</p>
<p align="left"><strong>*</strong><strong>变长字符串，VARCHAR(n)、CHARACTER VARYING(n) 或 CHAR VARYING(n)：</strong>VARCHAR(n) 类型的字符串是变长字符串，最长可达 32,672 字节。</p>
<p align="left"><strong>*LONG VARCHAR</strong><strong>：</strong>LONG VARCHAR 类型的字符串是变长字符串，最长可达 32,700 字节。</p>
<p align="left"><strong>*</strong><strong>字符大对象字符串(Character Large Object String)，CLOB(n[K|M|G])：</strong>CLOB 是变长字符串，最长可以达到 2,147,483,647 字节。如果只指定了 n，那么 n 的值就是最大长度。如果指定了 nK，那么最大长度就是 n*1,024(n 的最大值为 2,097,152)。如果指定了 nM，那么最大长度就是 n*1,048,576(n 的最大值为 2,048)。如果指定了 nG，那么最大长度就是 n*1,073,741,824(n 的最大值是 2)。CLOB 用于存储基于大单字节字符集(single-byte character set，SBCS)字符的数据或基于混合(多字节字符集(MBCS)和 SBCS)字符的数据。图形字符串是表示双字节字符数据的字节序列。图形字符串包括类型为 GRAPHIC(n) 的定长图形字符串和类型为 VARGRAPHIC(n)、LONG VARGRAPHIC 和 DBCLOB(n) 的变长图形字符串。字符串的长度就是序列中双字节字符的数目。</p>
<p align="left"><strong>*</strong><strong>定长图形字符串，GRAPHIC(n)：</strong>定长图形字符串的长度介于 1 到 127 个双字节字符之间。如果没有指定长度，就认为是 1 个双字节字符。</p>
<p align="left"><strong>*</strong><strong>变长图形字符串，VARGRAPHIC(n)：</strong>VARGRAPHIC(n) 类型的字符串是变长图形字符串，最大长度可达 16,336 个双字节字符。</p>
<p align="left"><strong>*LONG VARGRAPHIC</strong><strong>：</strong>LONG VARGRAPHIC 类型的字符串是变长图形字符串，最大长度可达 16,350 个双字节字符。</p>
<p align="left"><strong>*</strong><strong>双字节字符大对象字符串，DBCLOB(n[K|M|G])：</strong>双字节字符大对象是变长双字节字符图形字符串，最长可达 1,073,741,823 个字符。如果只指定了 n，那么 n 就是最大长度。如果指定了 nK，那么最大长度就是 n*1,024(n 的最大值为 1,048,576)。如果指定了 nM，那么最大长度就是 n*1,048,576(n 的最大值为 1,024)。如果指定了 nG，那么最大长度就是 n*1,073,741,824(n 的最大值是 1)。DBCLOB 用于存储基于大 DBCS(双字节字符集，double-byte character set)字符的数据。二进制字符串是字节序列。二进制字符串包括 BLOB(n) 类型的变长字符串，它用于容纳非传统型的数据，诸如图片、语音或混合媒体等，还可以容纳用户定义的类型及用户定义的函数的结构化数据。</p>
<p align="left"><strong>二进制大对象，BLOB(n[K|M|G])：</strong>二进制大对象是变长字符串，最长可达 2,147,483,647 字节。如果只指定了 n，那么 n 就是最大长度。如果指定了 nK，那么最大长度就是 n*1,024(n 的最大值为 2,097,152)。如果指定了 nM，那么最大长度就是 n*1,048,576(n 的最大值为 2,048)。如果指定了 nG，那么最大长度就是 n*1,073,741,824(n 的最大值是 2)。</p>
<p align="left">日期时间型数据类型包括 DATE、TIME 和 TIMESTAMP。日期时间值可在某些算术和字符串操作中使用，而且兼容某些字符串，但它们既不是字符串，也不是数字。</p>
<p align="left"><strong>*DATE</strong><strong>：</strong>DATE 是一个由三部分组成的值(年、月和日)。年份部分的范围是从 0001 到 9999。月份部分的范围是从 1 到 12。日部分的范围是从 1 到 n，其中 n 的值取决于月份。DATE 列长 10 个字节。</p>
<p align="left"><strong>*TIME</strong><strong>：</strong>TIME 是一个由三部分组成的值(小时、分钟和秒)。小时部分的范围是从 0 到 24。分钟和秒部分的范围都是从 0 到 59。如果小时为 24，分钟和秒的值都是 0。TIME 列长 8 个字节。</p>
<p align="left"><strong>*TIMESTAMP</strong><strong>：</strong>TIMESTAMP 是一个由七部分组成的值(年、月、日、小时、分钟、秒和微秒)。年份部分的范围是从 0001 到 9999。月份部分的范围是从 1 到 12。日部分的范围是从 1 到 n，其中 n 的值取决于月份。小时部分的范围是从 0 到 24。分钟和秒部分的范围都是从 0 到 59。微秒部分的范围是从 000000 到 999999。如果小时是 24，那么分钟值、秒的值和微秒的值都是 0。TIMESTAMP 列长 26 个字节。日期时间值的字符串表示：尽管 DATE、TIME 和 TIMESTAMP 的值的内部表示对用户是透明的，日期、时间和时间戳记也可以用字符串来表示，CHAR 标量函数(请参阅 SQL 的“词类(parts of speech)”)可以用于创建日期时间值的字符串表示。</p>
<p align="left">*日期值的字符串表示是一个以数字开始，长度不少于 8 个字符的字符串。日期值的月份和日部分中前面的零可以省略。</p>
<p align="left">*时间值的字符串表示是以数字开头，长度不少于 4 个字符的字符串。时间值的小时部分前面的零可以省略，秒部分可以完全省略。如果秒的值没有指定，那么就认为是 0。</p>
<p>*时间戳记值的字符串表示是以数字开头，长度不少于 16 个字符的字符串。完整的时间戳记字符串表示形式为 yyyy-mm-dd-hh.mm.ss.nnnnnn。时间戳记值的月、日或小时等几部分前面的零可以省略，微秒可以截断或完全省略。如果任何时间戳记值的微秒部分尾零被省略掉了，那么将假定空缺的数位上是零。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sweetytang.com/archives/147.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java中的单例模式</title>
		<link>http://www.sweetytang.com/archives/145.html</link>
		<comments>http://www.sweetytang.com/archives/145.html#comments</comments>
		<pubDate>Sun, 18 Aug 2013 14:03:05 +0000</pubDate>
		<dc:creator>牧羊人</dc:creator>
				<category><![CDATA[师夷长技]]></category>
		<category><![CDATA[JAVA编程，单例模式]]></category>

		<guid isPermaLink="false">http://www.sweetytang.com/?p=145</guid>
		<description><![CDATA[单例模式属于对象创建型模式，其意图是保证一个类仅有一个实例，并提供一个访问它的全局访问点。对一些类来说，只有一个实例是很重要的，虽然系统中可以有许多打印机，但却只应该有一个打印机假脱机，只应该有一个文件系统和一个窗口管理器，一个数字滤波器只能有一个A/D转换器，一个会计系统只能专用于一个公司。怎样才能保证一个类只有一个实例并且这个实例易于被访问，一个全局变量使得一个对象可以被访问，但它不能防止你实例化多个对象，一个更好的方法是让类自身负责保存他的唯一实例。这个类可以保证没有其他实例可以被创建，并且它可以提供一个访问该实例的方法，这就是Singleton模式。 实用性：在下面的情况下可以使用Singleton模式： 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。 当这个唯一实例应该是通过子类化可扩展的，并且客户应该无需更改代码就能使用一个扩展的实例时。 import javax.swing.*; import java.awt.*; public class TestSingleton {     public static void main(String args[])     {         System.out.println(“System Print Out”);        int x1=40;        int y1=40;        int x2=100;        int y2=100;        Color paint_color &#8230; <a href="http://www.sweetytang.com/archives/145.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>单例模式属于对象创建型模式，其意图是保证一个类仅有一个实例，并提供一个访问它的全局访问点。对一些类来说，只有一个实例是很重要的，虽然系统中可以有许多打印机，但却只应该有一个打印机假脱机，只应该有一个文件系统和一个窗口管理器，一个数字滤波器只能有一个A/D转换器，一个会计系统只能专用于一个公司。怎样才能保证一个类只有一个实例并且这个实例易于被访问，一个全局变量使得一个对象可以被访问，但它不能防止你实例化多个对象，一个更好的方法是让类自身负责保存他的唯一实例。这个类可以保证没有其他实例可以被创建，并且它可以提供一个访问该实例的方法，这就是Singleton模式。<span id="more-145"></span></p>
<p>实用性：在下面的情况下可以使用Singleton模式：</p>
<ul>
<li>当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。</li>
<li>当这个唯一实例应该是通过子类化可扩展的，并且客户应该无需更改代码就能使用一个扩展的实例时。</li>
</ul>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="568">
<p align="left"><strong>import</strong> javax.swing.*;</p>
<p align="left"><strong>import</strong> java.awt.*;</p>
<p align="left">
<p align="left"><strong>public</strong> <strong>class</strong> TestSingleton</p>
<p align="left">{</p>
<p align="left">    <strong>public</strong> <strong>static</strong> <strong>void</strong> main(String args[])</p>
<p align="left">    {</p>
<p align="left">        System.<em>out</em>.println(“System Print Out”);</p>
<p align="left">       <strong>int</strong> x1=40;</p>
<p align="left">       <strong>int</strong> y1=40;</p>
<p align="left">       <strong>int</strong> x2=100;</p>
<p align="left">       <strong>int</strong> y2=100;</p>
<p align="left">       Color paint_color = Color.<em>blue</em>;</p>
<p align="left">       Video2.<em>getInstance</em>(x1,y1,x2,y2,paint_color);</p>
<p align="left">       <strong>for</strong>(<strong>int</strong> i=0;i&lt;3;i++)</p>
<p align="left">       {</p>
<p align="left">           paint_color = Color.<em>red</em>;</p>
<p align="left">           Video2.<em>getInstance</em>(x1+40,y1+40,x2,y2,paint_color);</p>
<p align="left">       }</p>
<p align="left">       System.<em>out</em>.println(“System Print Out”);</p>
<p align="left">    }</p>
<p align="left">}</p>
<p align="left">
<p align="left"><strong>class</strong> <span style="text-decoration: underline;">Video2</span> <strong>extends</strong> JFrame</p>
<p align="left">{</p>
<p align="left">    <strong>static</strong> <strong>int</strong> <em>x1</em>;</p>
<p align="left">    <strong>static</strong> <strong>int</strong> <em>y1</em>;</p>
<p align="left">    <strong>static</strong> <strong>int</strong> <em>x2</em>;</p>
<p align="left">    <strong>static</strong> <strong>int</strong> <em>y2</em>;</p>
<p align="left">    <strong>static</strong> Color <em>paint_color</em>;</p>
<p align="left">    //定义Construct函数，将需要的参数带入</p>
<p align="left">    <strong>public</strong> Video2(<strong>int</strong> x1,<strong>int</strong> y1,<strong>int</strong> x2,<strong>int</strong> y2, Color paint_color)</p>
<p align="left">    {</p>
<p align="left">       Video2.<em>x1</em>=x1;</p>
<p align="left">       Video2.<em>y1</em>=y1;</p>
<p align="left">       Video2.<em>x2</em>=x2;</p>
<p align="left">       Video2.<em>y2</em>=y2;</p>
<p align="left">       Video2.<em>paint_color</em> = paint_color;</p>
<p align="left">       setBounds(200,100,200,500);</p>
<p align="left">       setDefaultCloseOperation(JFrame.<em>EXIT_ON_CLOSE</em>);</p>
<p align="left">       setVisible(<strong>true</strong>);</p>
<p align="left">    }</p>
<p align="left">    <strong>int</strong> j=0;</p>
<p align="left">
<p align="left">    //@Override</p>
<p align="left">    <strong>public</strong> <strong>void</strong> paint(Graphics g)</p>
<p align="left">    {</p>
<p align="left">       System.<em>out</em>.println(++j);</p>
<p align="left">       g.setColor(<em>paint_color</em>);</p>
<p align="left">       g.drawLine(<em>x1</em>, <em>y1</em>, <em>x2</em>, <em>y2</em>);</p>
<p align="left">    }</p>
<p align="left">
<p align="left">    <strong>public</strong> <strong>static</strong> <strong>synchronized</strong> Video2 getInstance(<strong>int</strong> x1,<strong>int</strong> y1,<strong>int</strong> x2,<strong>int</strong> y2,Color paint_color){</p>
<p align="left">        <strong>if</strong> (<em>instance</em> == <strong>null</strong>) {</p>
<p align="left">          <em>instance</em> = <strong>new</strong> Video2(x1, y1, x2, y2, paint_color);</p>
<p align="left">        }</p>
<p align="left">        <em>instance</em>.repaint();</p>
<p align="left">        <strong>return</strong> <em>instance</em>;</p>
<p align="left">      }</p>
<p align="left">
<p align="left">    <strong>private</strong> <strong>static</strong> Video2 <em>instance</em>;</p>
<p>}</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sweetytang.com/archives/145.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何查看网络端口号状态</title>
		<link>http://www.sweetytang.com/archives/142.html</link>
		<comments>http://www.sweetytang.com/archives/142.html#comments</comments>
		<pubDate>Sun, 11 Aug 2013 12:34:28 +0000</pubDate>
		<dc:creator>牧羊人</dc:creator>
				<category><![CDATA[师夷长技]]></category>
		<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://www.sweetytang.com/?p=142</guid>
		<description><![CDATA[用“netstat－an”查看端口状态 在Windows2000/XP中，可以在命令提示符下使用“netstat-an”查看系统端口状态，可以列出系统正在开放的端口号及其状态。在stat下面有一些英文，简单说一下这些英文具体都代表什么 LISTEN：侦听来自远方的TCP端口的连接请求 SYN-SENT：再发送连接请求后等待匹配的连接请求 SYN-RECEIVED：再收到和发送一个连接请求后等待对方对连接请求的确认 ESTABLISHED：代表一个打开的连接 FIN-WAIT-1：等待远程TCP连接中断请求，或先前的连接中断请求的确认 FIN-WAIT-2：从远程TCP等待连接中断请求 CLOSE-WAIT：等待从本地用户发来的连接中断请求 CLOSING：等待远程TCP对连接中断的确认 LAST-ACK：等待原来的发向远程TCP的连接中断请求的确认 TIME-WAIT：等待足够的时间以确保远程TCP接收到连接中断请求的确认 CLOSED：没有任何连接状态 “telnet 目标ip 对端port”，是不是可以测试对端的tcp上的该port是不是开启状态？ 这个方法经常用于调试穿越防火墙的连接吧？我有点疑问，这是什么原理啊？ ####可以，telnet客户进程和终端用户本身就是通过tcp建立连接的，当然前提是双方都打开了相应的port，如果失败，那就证明没有开放次端口（当然这个不是绝对的，例如防火墙限制）如果穿越防火墙的话，根据我的经验，udp相对容易些 从过程来看，“telnet 目标ip” 就是想连接目标ip的telnet服务嘛，而且要默认占用对端的23端口； 后面又跟上另外一个端口算怎么回事啊？ ####telnet服务目的端默认的端口是23，这是应用层的C/S，所以你telnet+ip地址是可以的，对于类似sqlserver 2000 telnet服务的端口是1433，所以你就需要telnet+ip+port 另外这种方法好像只能测试对端的tcp端口吧？ 如果要测试对方的udp端口呢？ ####是的，telnet的原理已经说明，udp是无连接的，所以不能通过telnet的方式进行测试，一般可以向目标主机的每个端口发出一个0字节的udp包如果我们收到端口不可达的icmp消息，端口就是关闭的，否则假设它是打开的。这个你找点扫描工具例如nmap 暗礁的xscan源码看看]]></description>
			<content:encoded><![CDATA[<p>用“netstat－an”查看端口状态 在Windows2000/XP中，可以在命令提示符下使用“netstat-an”查看系统端口状态，可以列出系统正在开放的端口号及其状态。在stat下面有一些英文，简单说一下这些英文具体都代表什么<span id="more-142"></span></p>
<p>LISTEN：侦听来自远方的TCP端口的连接请求<br />
SYN-SENT：再发送连接请求后等待匹配的连接请求<br />
SYN-RECEIVED：再收到和发送一个连接请求后等待对方对连接请求的确认<br />
ESTABLISHED：代表一个打开的连接<br />
FIN-WAIT-1：等待远程TCP连接中断请求，或先前的连接中断请求的确认<br />
FIN-WAIT-2：从远程TCP等待连接中断请求<br />
CLOSE-WAIT：等待从本地用户发来的连接中断请求<br />
CLOSING：等待远程TCP对连接中断的确认<br />
LAST-ACK：等待原来的发向远程TCP的连接中断请求的确认<br />
TIME-WAIT：等待足够的时间以确保远程TCP接收到连接中断请求的确认<br />
CLOSED：没有任何连接状态</p>
<p>“telnet 目标ip 对端port”，是不是可以测试对端的tcp上的该port是不是开启状态？ 这个方法经常用于调试穿越防火墙的连接吧？我有点疑问，这是什么原理啊？<br />
####可以，telnet客户进程和终端用户本身就是通过tcp建立连接的，当然前提是双方都打开了相应的port，如果失败，那就证明没有开放次端口（当然这个不是绝对的，例如防火墙限制）如果穿越防火墙的话，根据我的经验，udp相对容易些</p>
<p>从过程来看，“telnet 目标ip” 就是想连接目标ip的telnet服务嘛，而且要默认占用对端的23端口； 后面又跟上另外一个端口算怎么回事啊？<br />
####telnet服务目的端默认的端口是23，这是应用层的C/S，所以你telnet+ip地址是可以的，对于类似sqlserver 2000</p>
<p>telnet服务的端口是1433，所以你就需要telnet+ip+port</p>
<p>另外这种方法好像只能测试对端的tcp端口吧？ 如果要测试对方的udp端口呢？<br />
####是的，telnet的原理已经说明，udp是无连接的，所以不能通过telnet的方式进行测试，一般可以向目标主机的每个端口发出一个0字节的udp包如果我们收到端口不可达的icmp消息，端口就是关闭的，否则假设它是打开的。这个你找点扫描工具例如nmap 暗礁的xscan源码看看</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sweetytang.com/archives/142.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>散红尘，笑苍生，转身夏至！</title>
		<link>http://www.sweetytang.com/archives/139.html</link>
		<comments>http://www.sweetytang.com/archives/139.html#comments</comments>
		<pubDate>Sun, 28 Jul 2013 12:01:02 +0000</pubDate>
		<dc:creator>牧羊人</dc:creator>
				<category><![CDATA[他山之玉]]></category>
		<category><![CDATA[红尘，苍生]]></category>

		<guid isPermaLink="false">http://www.sweetytang.com/?p=139</guid>
		<description><![CDATA[衰草连横向晚晴 半城柳色半声笛 枉将绿蜡作红玉 满座衣冠无相忆 时光 来复去。。。。 斜屏半倚 拉长了光影 重彩朱漆 斑驳了画意 一出纸醉金迷闹剧 一袭染尽红尘的衣 唱罢西厢谁盼得此生相许 灯下的影 粉饰着回忆 老旧唱机 轮回了思绪 一封泛黄褶皱的信 一支勾勒眉角的笔 花腔宛转着应和陈年的曲 衣香鬓影掩过了几声叹息 冷眼看过了霓虹几场别离 他还演着那场郎骑竹马来的戏 他还穿着那件花影重叠的衣 他还陷在那段隔世经年的梦 静静合衣睡去 不理朝夕 他演尽了悲欢也无人相和的戏 那烛火未明摇曳满地的冷清 他摇落了繁花空等谁记起 为梦送行的人 仍未散去 还有谁陪我痴迷看这场旧戏 还有谁为我而停谁伴我如衣]]></description>
			<content:encoded><![CDATA[<p>衰草连横向晚晴 半城柳色半声笛<br />
枉将绿蜡作红玉 满座衣冠无相忆<br />
时光 来复去。。。。<span id="more-139"></span> 斜屏半倚 拉长了光影<br />
重彩朱漆 斑驳了画意<br />
一出纸醉金迷闹剧<br />
一袭染尽红尘的衣<br />
唱罢西厢谁盼得此生相许<br />
灯下的影 粉饰着回忆<br />
老旧唱机 轮回了思绪<br />
一封泛黄褶皱的信<br />
一支勾勒眉角的笔<br />
花腔宛转着应和陈年的曲<br />
衣香鬓影掩过了几声叹息<br />
冷眼看过了霓虹几场别离<br />
他还演着那场郎骑竹马来的戏<br />
他还穿着那件花影重叠的衣<br />
他还陷在那段隔世经年的梦<br />
静静合衣睡去 不理朝夕<br />
他演尽了悲欢也无人相和的戏<br />
那烛火未明摇曳满地的冷清<br />
他摇落了繁花空等谁记起<br />
为梦送行的人 仍未散去<br />
还有谁陪我痴迷看这场旧戏<br />
还有谁为我而停谁伴我如衣</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sweetytang.com/archives/139.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>z/OS communication server IP configuration guide</title>
		<link>http://www.sweetytang.com/archives/137.html</link>
		<comments>http://www.sweetytang.com/archives/137.html#comments</comments>
		<pubDate>Mon, 22 Jul 2013 16:09:56 +0000</pubDate>
		<dc:creator>牧羊人</dc:creator>
				<category><![CDATA[师夷长技]]></category>

		<guid isPermaLink="false">http://www.sweetytang.com/?p=137</guid>
		<description><![CDATA[Steps to configure SMTP: Verify TCP/IP profile statements in the TCP/IP profile data set. Update the SMTP cataloged procedure SEZAINST(SMTPPROC). Customize the SMTPNOTE CLIST and modify parmlib members. Customize the SMTP mail headers (optional). Set up a TCP-to-NJE mail gateway &#8230; <a href="http://www.sweetytang.com/archives/137.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p align="left"><strong>Steps to configure SMTP:</strong></p>
<ol>
<li>Verify TCP/IP profile statements in the TCP/IP profile data set.</li>
<li>Update the SMTP cataloged procedure SEZAINST(SMTPPROC).</li>
<li>Customize the SMTPNOTE CLIST and modify parmlib members.</li>
<li>Customize the SMTP mail headers (optional).</li>
<li>Set up a TCP-to-NJE mail gateway (optional).</li>
<li>Specify configuration statements in the SMTP configuration data set.</li>
<li>Create an SMTP security table (optional).</li>
<li>Enable SMTP domain name resolution.</li>
<li>Enable sending messages to SMTP users and users on an IP Network.</li>
<li>Optionally, design SMTP exit to inspect and filter unwanted mail (<em>spam</em>).</li>
</ol>
<p>Set up automation to monitor how much mail is queued.<span id="more-137"></span></p>
<p align="left"><strong>Step 1: Verify TCP/IP profile statements in the</strong></p>
<p align="left">Consider specifying the following TCP/IP profile statements.</p>
<p align="left"><strong>AUTOLOG</strong></p>
<p align="left">If you want the SMTP server to start automatically when the TCPIP address space is started, include the name of the member that contains the SMTP cataloged procedure in the AUTOLOG statement of the <em>hlq</em>.PROFILE.TCPIP data set.</p>
<p align="left">AUTOLOG</p>
<p align="left">  SMTP</p>
<p align="left">ENDAUTOLOG</p>
<p align="left"><strong>PORT</strong></p>
<p align="left">To ensure that port TCP 25 is reserved for SMTP, verify that the name of the member that contains the SMTP cataloged procedure has been added to the PORT statement in<em>hlq</em>.PROFILE.TCPIP.</p>
<p align="left">PORT</p>
<p align="left">  25 TCP SMTP</p>
<p align="left"><strong>Other TCP/IP profile considerations</strong></p>
<p align="left">The SMTP server uses the Pascal API MonQuery function to obtain the IPv4 IP addresses defined for the TCP/IP stack. The total number of IPv4 IP addresses that can be defined for the TCP/IP stack is limited to 255 IP addresses. This limit of 255 IP addresses applies to all IPv4 IP addresses, including loopback and dynamic VIPA.</p>
<p align="left">For more information about TCP/IP profile statements, see <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz001/f1a1b4a0.htm">z/OS Communications Server: IP Configuration Reference</a>.</p>
<p align="left"><strong>Step 2: Update the SMTP cataloged procedure</strong></p>
<p align="left">Update the SMTP cataloged procedure by copying the sample in SEZAINST(SMTPPROC) to your system or recognized PROCLIB. Specify SMTP parameters, and change the data set as required to suit your local configuration. See <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz001/f1a1b4a0.htm">z/OS Communications Server: IP Configuration Reference</a>for more detailed information about the procedure.</p>
<p align="left"><strong>Note:</strong></p>
<p align="left">SMTP does not support z/OS® UNIX® files.</p>
<p align="left"><strong>Step 3: Customize the SMTPNOTE CLIST and modify parmlib data</strong></p>
<p align="left">You must copy and customize the SMTPNOTE CLIST on every system where users will be able to send mail with the SMTPNOTE command. This includes TCP/IP nodes and each NJE node that sends mail through SMTP on a remote gateway node. SMTPNOTE uses the TSO transmit (XMIT) command to interface with SMTP.</p>
<p align="left">Copy SEZAINST(SMTPNOTE) into the system CLIST data set. Since the SEZAINST data set is in a fixed format, the SMTPNOTE member may be truncated if your system CLIST library is not in a fixed format.</p>
<p align="left">You should customize the following variables in the SMTPNOTE CLIST:</p>
<p align="left"><strong>DDNAME</strong></p>
<p align="left">The DDNAME that SMTPNOTE will use to allocate the input data set. The allocation is done to allow shared access to the data set. The default value is set to EZBSMTPN and should only be changed if this value will cause a conflict on your system.</p>
<p align="left"><strong>HOSTNAME</strong></p>
<p align="left">The name of the system on which this CLIST is installed. Typically, the name is the NJE node name of this system. The NJE node name of the system is the value of the NAME parameter on the NODE(nn) statement in the JES2PARM member of parmlib.</p>
<p align="left"><strong>SMTPNODE</strong></p>
<p align="left">The NJE node on which the SMTP server runs. Typically, HOSTNAME and SMTPNODE have the same value. When SMTPNODE is used on an NJE network in conjunction with a TCP-to-NJE gateway, the value of this parameter is the NJE node name of that gateway.</p>
<p align="left"><strong>SMTPJOB</strong></p>
<p align="left">The name of the address space in which SMTP runs at SMTPNODE. Usually this is SMTP. The SMTPJOB name must not be defined as a node name to JES and cannot begin with the characters R, RM, or RMT, since SMTPNOTE uses TSO XMIT to transmit the note to the SMTP address space.</p>
<p align="left"><strong>TEMPDSN</strong></p>
<p align="left">The name of the temporary data set used to store the contents of the note being created. This can be any arbitrary data set name that ends with the low-level qualifier, TEXT. Do not use a fully qualified name. If you do not fully qualify the name (no quotes), the data set name will be prefixed by the <em>userid</em>. If you enclose the name in single quotes, several users can use this temporary data set.</p>
<p align="left"><strong>TIMEZONE</strong></p>
<p align="left">The time zone for your system. This will appear in the “Date:” stamp of the RFC 822 header generated by SMTPNOTE. See RFC 822 for valid time zone formats. SMTPNOTE does not check the validity of the character string configured. If SYSTZ is configured, SMTPNOTE gets the TIMEZONE value from the MVS™ system using the local TIME/DATE offset in the communication vector table (CVT) associated with SMTPNOTE. This value is then converted to a string format of a plus sign (+) or a minus sign (-) followed by 4 digits (for example, -<em>HHMM</em>). The local TIME/DATE offset is controlled by the system administrator that sets the MVS system time/date and timezone parameters. For more information about the <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.ieae200/clock.htm">CLOCK<em>xx</em></a> parmlib member, see <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.ieae200/iea2e2b0.htm">z/OS MVS Initialization and Tuning Reference</a>. For more information about the MVS <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.ieag100/set.htm">SET CLOCK=<em>hh</em>.<em>mm</em>.<em>ss</em></a> or <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.ieag100/set.htm">SET TIMEZONE={W|E}.<em>hh</em>.<em>mm</em></a> commands, see <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.ieag100/iea2g1b0.htm">z/OS MVS System Commands</a>. For information about accessing RFCs, see <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz002/rfc.htm#rfc">Related protocol specifications</a>.</p>
<p align="left"><strong>Note:</strong></p>
<p align="left">SMTPNOTE does not alter any existing date/time and timezone headers in the mail.</p>
<p align="left"><strong>ATSIGN</strong></p>
<p align="left">Some foreign languages need to use a different character to represent the @ symbol. This input symbol is a single-byte representation of the @ symbol in their national language code page.</p>
<p align="left"><strong>DOMAIN</strong></p>
<p align="left">Some SMTP message transfer agents (MTAs) need a fully qualified name as an email address for the originator of the mail. If DOMAIN is set, then this string is appended to the HOSTNAME variable string provided in this CLIST, and the resulting fully qualified name string is <em>hostname</em>.<em>domain</em>. The resulting string is later used by the CLIST to create the SMTP MAIL FROM: command and the RFC 822 From: header in the mail message. The CLIST does not check validity of the content of the string. This variable should be set when sending mail to CSSMTP.</p>
<p align="left">You should also modify the following parmlib members:</p>
<p align="left"><strong>IEFSSNxx</strong></p>
<p align="left">When the SMTP server is running in the same host (or system) as the SMTPNOTE CLIST, the IEFSSNxx member can be modified in one of the following two ways:</p>
<ul>
<li>The following lines may be included:</li>
<li>   TNF,MVPTSSI</li>
</ul>
<p align="left">   VMCF,MVPXSSI, nodename</p>
<p align="left">where <em>nodename</em> is the NJE node name. The NJE node name, <em>nodename</em>, must be the same as the <em>hostname</em> and the <em>smtpnode</em> that are defined in the SMTPNOTE CLIST.</p>
<ul>
<li>If you are using restartable VMCF, you must make changes to IEFSSxx members in the SYS1.PARMLIB data set.</li>
</ul>
<p align="left">For introductory information on restartable VMCF, see <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz002/drestor.htm#drestor">Step 3: Configure VMCF and TNF</a>. For the MVS system changes required for restartable VMCF, see the TCP/IP for MVS Program Directory. For information on VMCF commands, see <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.hald001/f1a1c5a0.htm">z/OS Communications Server: IP Diagnosis Guide</a>.</p>
<p align="left"><strong>Note:</strong></p>
<p align="left">You should define the SystemName in the IEFSSNxx parmlib member to be the same as your JES2 or JES3 (NJE) nodename. This is required for correct delivery of SMTP mail. For example, if the following line is coded in your SMTPNOTE CLIST:</p>
<p align="left">SMTPNODE P390</p>
<p align="left">you need to code NAME=P390 in your IEFSSNxx parmlib member. As an alternative, instead of using the IEFSSNxx parmlib member to specify the JES node, you can use the keyword NJENODENAME within your SMTP configuration to a valid NJE node. For more information, see NJENODENAME.</p>
<p align="left"><strong>IKJTSOxx</strong></p>
<p align="left">The TRANSREC statement must contain the correct nodename, or the NODESMF parameter can be coded as NODESMF((*,*)). For more information on the TRANSREC statement, see <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.ieae200/iea2e2b0.htm">z/OS MVS Initialization and Tuning Reference</a>.</p>
<p align="left"><strong>Step 4: Customize the SMTP mail headers (Optional)</strong></p>
<p align="left">Electronic mail has a standardized syntax for text messages that are sent across networks. The standard syntax is described in RFC 822. Messages have an envelope and contents. Envelopes contain all necessary information to accomplish transmission and delivery of the message content. The fields within the envelope are in a standard format.</p>
<p align="left">In most cases, the IBM-supplied mail header defaults are adequate. To understand the IBM-supplied mail header defaults, see <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz002/cfgproc.htm#ssmdsr">Default SMTP rules</a>. If it is necessary for you to change them, you can use the REWRITE822HEADER statement in the SMTP configuration data set to control the way SMTP performs a rewrite of the RFC 822 mail headers. Mail headers are passed from the local system, or NJE network, to the TCP network. Mail headers passing from the TCP network to the local system or NJE network are not affected. Only the addresses under certain RFC 822 header fields can be subject to the header rewriting rules.</p>
<p align="left">The header fields affected by the REWRITE822HEADER statement are:</p>
<p align="left"><strong>Field</strong></p>
<p align="left"><strong>Description</strong></p>
<p align="left"><strong>From</strong></p>
<p align="left">The identity of the person sending the message.</p>
<p align="left"><strong>Resent-From</strong></p>
<p align="left">Indicates the person that forwarded the message.</p>
<p align="left"><strong>Reply-To</strong></p>
<p align="left">Provides a mechanism for indicating any mailboxes to which responses are to be sent.</p>
<p align="left"><strong>Resent-Reply-To</strong></p>
<p align="left">Indicates the person to whom you should forward the reply.</p>
<p align="left"><strong>Return-Path</strong></p>
<p align="left">This field is added by the mail transport service at the time of final delivery. It contains definitive information about the address and route back to the originator of the message.</p>
<p align="left"><strong>Sender</strong></p>
<p align="left">The authenticated identity of the agent that sent the message. An agent can be a person, system, or process.</p>
<p align="left"><strong>Resent-Sender</strong></p>
<p align="left">The authenticated identity of the agent that has resent the message.</p>
<p align="left"><strong>To</strong></p>
<p align="left">Contains the identity of the primary recipient of the message.</p>
<p align="left"><strong>Cc</strong></p>
<p align="left">Contains the identity of the secondary (informational) recipients of the message.</p>
<p align="left"><strong>Bcc</strong></p>
<p align="left">Contains the identity of additional recipients of the message. The contents of this field are not included in copies sent to the primary and secondary recipients of the message but are included in the author&#8217;s copy.</p>
<p align="left"><strong>The SMTP rules data set</strong></p>
<p align="left">You can override the default rules for header addresses by creating an SMTP rules data set. This allows you to customize the address transformations to the needs of a particular site. If you are customizing SMTP mail headers, this task is required.</p>
<p align="left">The SMTP rules data set is pointed to by the //SMTPRULE DD statement in the SMTP cataloged procedure. The SMTP rules data set consists of:</p>
<p align="left"><strong>Field definition</strong></p>
<p align="left">Contains the names of all header fields whose addresses are to be rewritten.</p>
<p align="left"><strong>Rules definition</strong></p>
<p align="left">Contains the rewrite rules for the header fields.</p>
<p align="left"><strong>Statement syntax</strong></p>
<p align="left">In creating the SMTP rules data set you must use the following syntax conventions:</p>
<ul>
<li>The data set statements are free-format. Tokens can be separated by an arbitrary number of spaces, and statements can span an arbitrary number of lines. However, you must end every statement with a semicolon (;).</li>
<li>A character string appearing within single quotation marks (&#8216;&#8230;&#8217;) is not case-sensitive. For example, &#8216;abc&#8217; represents &#8216;abc&#8217;, &#8216;Abc&#8217;, &#8216;ABC&#8217;, and so forth.</li>
<li>A character string appearing within double quotation marks (“&#8230;”) is case-sensitive. For example, “abc” only represents “abc”. It does not represent “Abc”, “ABC”, and so forth.</li>
</ul>
<p align="left">Special characters, such as @ and % are treated the same whether enclosed by single quotation marks or double quotation marks.</p>
<ul>
<li>Double-hyphens (“&#8211;”) are used to begin a comment. The comment extends to the end of the line.</li>
</ul>
<p align="left">The components of the SMTP rules data set are described in <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz002/cfgproc.htm#ssmffds">Format of the field definition section</a> and <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz002/cfgproc.htm#ssmfrds">Format of the rule definition section</a>.</p>
<p align="left"><strong>Format of the field definition section</strong></p>
<p align="left">The field definition section is the first section in any SMTP rules data set. It defines any applicable alias fields, and it is introduced by the following heading:</p>
<p align="left">Field Definition Section</p>
<p align="left">This section allows similar fields to be grouped under an alias or common name. This name, or alias, is used to represent the field list. You can define an arbitrary number of aliases representing a set of field lists.</p>
<p align="left">An alias name can be any alphanumeric sequence of characters that is not a predefined keyword within the SMTP rules (see the following). However, the alias name DefaultFields is treated specially by the SMTP configuration interpreter. If DefaultFields is defined, and if a rule is written that does not specify an associated field alias, the rules interpreter assumes thatDefaultFields is the associated field alias.</p>
<p align="left">The alias definition within this section is of the following form:</p>
<p align="left"><em>alias_name</em> = <em>alias_definition</em>; <em>optional comment</em></p>
<p align="left">where <em>alias_name</em> is the name of the alias and <em>alias_definition</em> is an expression describing which fields are to be grouped under this alias. This expression can be as simple as a single field name. For example:</p>
<p align="left">MyAlias = &#8216;To&#8217;;</p>
<p align="left">The aliases can be a list or set of field names. The field names <strong><em>To, From, Cc</em></strong>, and <strong><em>Bcc</em></strong>, in the following example are part of a set of field names referenced by the alias MyAlias.</p>
<p align="left">MyAlias = &#8216;To&#8217; &#8216;From&#8217; &#8216;Cc&#8217; &#8216;Bcc&#8217; ; &#8212; first list of fields</p>
<p align="left">You can combine field names and previously defined aliases to create a new alias. In the following example, the set of field names defined as MyAlias and the field names in the new alias YourAlias are combined to form a third set. The new alias TheirAlias is the union of both aliases and contains the fields of MyAlias and YourAlias.</p>
<p align="left">MyAlias    = &#8216;To&#8217; &#8216;From&#8217; &#8216;Cc&#8217; &#8216;Bcc&#8217;;</p>
<p align="left">YourAlias  = &#8216;Errors-To&#8217; &#8216;Warnings-To&#8217;;</p>
<p align="left">TheirAlias =  MyAlias YourAlias;</p>
<p align="left">In the previous example, TheirAlias is an alias that represents the following fields:</p>
<p align="left">TheirAlias:  &#8216;To&#8217; &#8216;From&#8217; &#8216;Cc&#8217; &#8216;Bcc&#8217; &#8216;Errors-To&#8217; &#8216;Warnings-To&#8217;</p>
<p align="left">You can perform the following operations on set members of the alias to create a subset of the initial alias:</p>
<ul>
<li>Union operations</li>
<li>Difference operations</li>
<li>Intersection operations</li>
</ul>
<p align="left"><strong>Union and difference operations</strong></p>
<p align="left">Certain field names can be added to or omitted from a new alias of field names by using a minus sign to omit set members and an optional plus sign to include another field name. In the mathematics of sets, when you add together 2 or more sets, they form a union. When set members are omitted, the remaining set is created by the difference operation. In the following example HerAlias and HisAlias are defined. The alias HisAlias is created from the union of TheirAlias, HerAlias, and the omission of Warning-To and Bcc from the sets:</p>
<p align="left">HerAlias   = &#8216;Reply-To&#8217; &#8216;Sender&#8217;;</p>
<p align="left">HisAlias   = TheirAlias &#8211; &#8216;Warnings-To&#8217; &#8211; &#8216;Bcc&#8217; + HerAlias;</p>
<p align="left">In the previous example, HisAlias is an alias that represents the following fields:</p>
<p align="left">HisAlias:  &#8216;To&#8217; &#8216;From&#8217; &#8216;Cc&#8217; &#8216;Errors-To&#8217; &#8216;Reply-To&#8217; &#8216;Sender&#8217;</p>
<p align="left"><strong>Intersection operations</strong></p>
<p align="left">A field definition can include an intersection operation. When the intersection operation is applied to two field expressions, the resulting set contains the fields common to both. In the following example, MyAlias and YourAlias are defined. The alias OurAlias is created from the intersection of MyAlias and YourAlias. The asterisk (*) is the intersection operator.</p>
<p align="left">MyAlias    = &#8216;Bcc&#8217; &#8216;Cc&#8217; &#8216;From&#8217; &#8216;Reply-To&#8217;;</p>
<p align="left">YourAlias  = &#8216;Resent-From&#8217; &#8216;Cc&#8217; &#8216;Sender&#8217; &#8216;To&#8217; &#8216;Bcc&#8217;;</p>
<p align="left">OurAlias   = MyAlias * YourAlias; &#8212; the intersection</p>
<p align="left">In the previous example, OurAlias represents the following fields:</p>
<p align="left">OurAlias:  &#8216;Bcc&#8217; &#8216;Cc&#8217;</p>
<p align="left">In the following complex example TheirAlias is created from the intersection of YourAlias with the sum of MyAlias plus Resent-From:</p>
<p align="left">TheirAlias = (MyAlias + &#8216;Resent-From&#8217;) * YourAlias;</p>
<p align="left">In the previous example, TheirAlias represents the following fields:</p>
<p align="left">TheirAlias: &#8216;Bcc&#8217; &#8216;Cc&#8217; &#8216;Resent-From&#8217;</p>
<p align="left">The parentheses within the definition of TheirAlias perform the same functions as in algebra. Field expressions are evaluated from left to right, but the intersection operation has greater priority than union and difference operations. If parentheses were not used in the definition ofTheirAlias, the result would be:</p>
<p align="left">TheirAlias: &#8216;Bcc&#8217; &#8216;Cc&#8217; &#8216;From&#8217; &#8216;Reply-To&#8217; &#8216;Resent-From&#8217;</p>
<p align="left"><strong>Format of the rule definition section</strong></p>
<p align="left">The rule definition section is the next section in any SMTP RULES data set. It contains the header rewriting rules that define the intended address transformations, and it is introduced by the following heading:</p>
<p align="left">Rule Definition Section</p>
<p align="left">The basic form of a rewrite rule is:</p>
<p align="left"><em>alias</em> :<em>before-address-pattern</em>  =&gt; <em>after-address-pattern</em>;</p>
<p align="left">where the alias name <em>alias</em> is an optional name representing the fields for which the rule is applicable. If the alias name <em>alias</em> : is omitted from this part of the rules, then DefaultFields is assumed.</p>
<p align="left">The sequence of tokens that define how a particular type of address is to be recognized is the<em>before-address-pattern</em> portion of the rules definition. The sequence of tokens that define how the address is to appear after the address has been rewritten is the <em>after-address-pattern</em>portion of the rules definition. The following example is the rule for converting host names:</p>
<p align="left">A &#8216;@&#8217; NJEHostName =&gt; A &#8216;@&#8217; TCPHostName; &#8212; convert host names</p>
<p align="left">In the previous example, A &#8216;@&#8217; NJEHostName is the <em>before-address-pattern</em> portion of this rule, andA &#8216;@&#8217; TCPHostName is the <em>after-address-pattern</em> portion. This rule specifies that the address to be rewritten has an arbitrary local name (A), an at sign (@), and the NJE host name (NJEHostName) of the current site. The rule also specifies that the rewritten address must contain the same arbitrary local name (A), an at sign, and the current site&#8217;s TCP host name TCPHostName.</p>
<p align="left"><strong>SMTP rules syntax conventions</strong></p>
<p align="left">Use the following syntax convention when writing SMTP rules:</p>
<ul>
<li>Some keywords have special meaning to the rules interpreter. For example, NJEHostNamekeyword means the NJE host name of the present system, and TCPHostName keyword means the TCP host name of the present system. For more information about valid keywords see <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz002/cfgproc.htm#ssmpkws">Predefined keywords within the SMTP rules</a>. Some keywords, such asTCPHostName, have single values. Other keywords, such as AltTCPHostName and AnyDomainName, can have many possible values. To avoid ambiguity, any keyword that can have multiple values, and is used in the <em>after-address-pattern</em> of a given rule, must appear exactly once within the <em>before-address-pattern</em> of that rule. The following rule example shows a valid syntax:</li>
</ul>
<ul>
<li>         A &#8216;@&#8217; AltTCPHostName &#8216;.&#8217; AltTCPHostName =&gt;</li>
<li>            A &#8216;%&#8217; TCPHostName &#8216;@&#8217; TCPHostName;</li>
</ul>
<p align="left">The following two rules have incorrect syntax because the first keyword AltTCPHostNamemust be rewritten to a keyword with specific values. The AltTCPHostName is attempting to be rewritten to the same AltTCPHostName but with unknown values, which is not valid.</p>
<p align="left">         A &#8216;@&#8217; AltTCPHostName &#8216;.&#8217; AltTCPHostName =&gt;</p>
<p align="left">            A &#8216;%&#8217; AltTCPHostName &#8216;@&#8217; TCPHostName;</p>
<p align="left">         A &#8216;@&#8217; TCPHostName =&gt; A &#8216;@&#8217; AltTCPHostName;</p>
<p align="left">Any rule whose <em>before-address-pattern</em> includes a keyword that has a null value is ignored during the header rewriting. Thus, if there is no AltNJEDomain defined in the system configuration data set, no rule that includes AltNJEDomain in the <em>before-address-pattern</em> is considered during the header rewriting.</p>
<ul>
<li>Alphanumeric identifiers that are not within single or double quotation marks, and that are not predefined keywords, are considered wildcards in the rule statement. Wildcards represent an arbitrary (non-null) sequence of characters. The identifier A, in the previous rule example, is a wildcard. Thus, if host were the NJE host name for the current site, and if tcphost were the TCP host name for the current site, the previous rule example recognizes abc@host and d@host as candidates for address rewriting, and rewrites them asabc@tcphost and d@tcphost respectively. To avoid ambiguity, within the <em>before-address-pattern</em> of a given rule, no two wildcards are allowed in a row, and the same wildcard cannot be used more than once. The following rules have valid syntax:</li>
</ul>
<ul>
<li>         A &#8216;@&#8217; B TCPHostName      =&gt; A &#8216;%&#8217; B &#8216;@&#8217; TCPHostName;</li>
</ul>
<p align="left">         A &#8216;%&#8217; B &#8216;@&#8217; NJEHostName =&gt; A B &#8216;@&#8217; TCPHostName;</p>
<p align="left">The following rules have incorrect syntax because the first rule has 2 wildcards in a rowA and B. The second rule has the same wildcard A repeated:</p>
<p align="left">         A B &#8216;@&#8217; TCPHostName      =&gt; A A &#8216;%&#8217; B &#8216;@&#8217; TCPHostName;</p>
<p align="left">         A &#8216;%&#8217; A &#8216;@&#8217; NJEHostName =&gt; A &#8216;@&#8217; TCPHostName;</p>
<ul>
<li>A character string appearing within single or double quotation marks tells the rules interpreter where a particular string is to appear within a header address. In the previous rule example, the &#8217;@' string in the <em>before-address-pattern</em> tells the rules interpreter that an at-sign (@) must appear between the arbitrary character string and the NJE host name. The &#8217;@' string in the <em>after-address-pattern</em> tells the rules interpreter that the address must be rewritten so an at-sign appears between the arbitrary string and the TCP host name. As previously mentioned, single quotation marks denote strings that are not case-sensitive, and double quotation marks denote case-sensitive strings.</li>
<li>The character sequence ”=&gt;”, with no spaces between the characters, separates the<em>before-address-pattern</em> from the <em>after-address-pattern</em>.</li>
<li>The order in which the rules are specified is important; the first rule encountered whose<em>before-address-pattern</em> matches the current address is the rule to dictate the address transformation. Once a matching rule has been found for an address, no other rule is considered.</li>
</ul>
<p align="left">In addition to the rules themselves, there is the capability for some simple logic to decide at system configuration time which rules within the data set should become active. These conditions are specified in the form of an IF-THEN-ELSE statement, as shown in the following example:</p>
<p align="left">   IF cond THEN</p>
<p align="left">      statement list</p>
<p align="left">   ELSE</p>
<p align="left">      statement list</p>
<p align="left">   ENDIF</p>
<p align="left">A statement list can consist of any number of rules or nested IF statements, or both. Each IF statement, regardless of whether it is nested, must be ended by an ENDIF keyword. As with IF statements in other programming languages, the ELSE clause is optional.</p>
<p align="left">There are only two conditions recognized by an IF statement:</p>
<ol>
<li>IF <em>predefined keyword</em> = &#8216;<em>character string</em>&#8216; THEN &#8230; ENDIF</li>
<li>IF <em>predefined keyword</em> CONTAINS &#8216;<em>character string</em>&#8216; THEN &#8230; ENDIF</li>
</ol>
<p align="left">The conditional operators = and CONTAINS can be prefixed by the word NOT to invert the conditions.</p>
<p align="left">The <em>predefined keyword</em> must be a keyword that resolves to a single value at system configuration time. The character string in the first condition can be null. A character string cannot span more than one line.</p>
<p align="left">The following example shows the use of IF statements.</p>
<p align="left">IF NJEDomain = ” THEN</p>
<p align="left">   A &#8216;@&#8217; AnyNJEHostName =&gt; A &#8216;%&#8217; AnyNJEHostName &#8216;@&#8217; TCPHostName;</p>
<p align="left">ELSE</p>
<p align="left">   A &#8216;@&#8217; NJEHostName &#8216;.&#8217; NJEDomain    =&gt; A &#8216;@&#8217; TCPHostName;</p>
<p align="left">   A &#8216;@&#8217; NJEHostName &#8216;.&#8217; AltNJEDomain =&gt; A &#8216;@&#8217; TCPHostName;</p>
<p align="left">   IF NJEDomain CONTAINS &#8216;.&#8217; THEN</p>
<p align="left">      A &#8216;@&#8217; AnyNJEHostName                   =&gt;</p>
<p align="left">         A &#8216;@&#8217; AnyNJEHostName &#8216;.&#8217; NJEDomain;</p>
<p align="left">      A &#8216;@&#8217; AnyNJEHostName &#8216;.&#8217; NJEDomain    =&gt;</p>
<p align="left">         A &#8216;@&#8217; AnyNJEHostName &#8216;.&#8217; NJEDomain;</p>
<p align="left">      A &#8216;@&#8217; AnyNJEHostName &#8216;.&#8217; AltNJEDomain =&gt;</p>
<p align="left">         A &#8216;@&#8217; AnyNJEHostName &#8216;.&#8217; NJEDomain;</p>
<p align="left">   ELSE</p>
<p align="left">      A &#8216;@&#8217; AnyNJEHostName                   =&gt;</p>
<p align="left">         A &#8216;%&#8217; AnyNJEHostName &#8216;.&#8217; NJEDomain &#8216;@&#8217; TCPHostName;</p>
<p align="left">      A &#8216;@&#8217; AnyNJEHostName &#8216;.&#8217; NJEDomain    =&gt;</p>
<p align="left">         A &#8216;%&#8217; AnyNJEHostName &#8216;.&#8217; NJEDomain &#8216;@&#8217; TCPHostName;</p>
<p align="left">      A &#8216;@&#8217; AnyNJEHostName &#8216;.&#8217; AltNJEDomain =&gt;</p>
<p align="left">         A &#8216;%&#8217; AnyNJEHostName &#8216;.&#8217; NJEDomain &#8216;@&#8217; TCPHostName;</p>
<p align="left">   ENDIF</p>
<p align="left">ENDIF</p>
<p align="left"><strong>Predefined keywords within the SMTP rules</strong></p>
<p align="left">The following predefined keywords can be used to define the header rewriting rules:</p>
<p align="left"><strong>AltNJEDomain</strong></p>
<p align="left">Matches the alternative domain name of the NJE network as defined by the ALTNJEDOMAIN statement in the SMTP configuration data set.</p>
<p align="left"><strong>AltTCPHostName</strong></p>
<p align="left">Matches any alternative TCP host name of the system, as defined by ALTTCPHOSTNAME statements in the SMTP configuration data set.</p>
<p align="left"><strong>AnyDomainName</strong></p>
<p align="left">Matches any fully qualified domain name. Any host name with a period (.) is considered to be a fully qualified domain name.</p>
<p align="left"><strong>AnyNJEHostName</strong></p>
<p align="left">Matches any (unqualified) NJE host name defined in the SMTPNJE.HOSTINFO data set.</p>
<p align="left"><strong>NJEDomain</strong></p>
<p align="left">Matches the domain name of the NJE network as defined by the NJEDOMAIN statement in the SMTP configuration data set.</p>
<p align="left"><strong>NJEHostName</strong></p>
<p align="left">Matches the NJE host name of the system.</p>
<p align="left"><strong>SecureNickAddr</strong></p>
<p align="left">Matches an address of the form <em>NJE_user_id@NJE_node_id</em>, where <em>NJE_user_id</em>, and<em>NJE_node_id</em> are defined with a nickname in the SMTP security data set.</p>
<p align="left"><strong>Note:</strong></p>
<p align="left">This only matches user and node IDs that are defined with nicknames.</p>
<p align="left">When SecureNickAddr is specified in the <em>before-address-pattern</em> of a rule, SMTP automatically associates the keyword SecureNickName with the corresponding nickname. This allows SecureNickName to be specified in the <em>after-address-pattern</em>.</p>
<p align="left"><strong>SecureNickName</strong></p>
<p align="left">Matches a nickname defined in the SMTP security data set. When SecureNickName is specified in the <em>before-address-pattern</em> of a rule, SMTP automatically associates the keyword SecureNickAddr with the corresponding <em>NJE_user_id@NJE_node_id</em>. This allows SecureNickAddr to be specified in the <em>after-address-pattern</em>.</p>
<p align="left"><strong>ShortTCPHostName</strong></p>
<p align="left">Matches the first portion of the TCP host name of the system, as defined by the HOSTNAME statement in the TCPIP.DATA data set. For example, if the TCP host name was mvs1.acme.com, the value of ShortTCPHostName is mvs1.</p>
<p align="left"><strong>TCPHostName</strong></p>
<p align="left">Matches the TCP host name of the system as defined by the concatenation of the HOSTNAME and DOMAINORIGIN statements in the TCPIP.DATA data set.</p>
<p align="left"><strong>TCPHostNameDomain</strong></p>
<p align="left">Matches the domain portion of the TCP host name of the system as defined by the DOMAINORIGIN statement in the TCPIP.DATA data set. For example, if the TCP host name was mvs1.acme.com, the value of TCPHostNameDomain is acme.com.</p>
<p align="left">The predefined keywords can consist of any combination of uppercase and lowercase characters; the rules interpreter does not distinguish between them.</p>
<p align="left">The secure keywords are only valid when SMTP is configured to be a secure gateway.</p>
<p align="left"><strong>Default SMTP rules</strong></p>
<p align="left">If the //SMTPRULE DD statement is not found, SMTP uses a default set of rules. The default set used depends on whether SMTP is configured as a secure gateway.</p>
<p align="left"><strong>SMTP nonsecure gateway configuration defaults</strong></p>
<p align="left">If SMTP is not configured as a secure gateway, SMTP uses the following defaults:</p>
<p align="left">FIELD DEFINITION SECTION</p>
<p align="left">DEFAULTFIELDS = &#8216;BCC&#8217; &#8216;CC&#8217; &#8216;FROM&#8217; &#8216;REPLY-TO&#8217; &#8216;RESENT-FROM&#8217;</p>
<p align="left">                &#8216;RESENT-REPLY-TO&#8217; &#8216;RESENT-SENDER&#8217; &#8216;RETURN-PATH&#8217;</p>
<p align="left">                &#8216;SENDER&#8217; &#8216;TO&#8217;;</p>
<p align="left">RULE DEFINITION SECTION</p>
<p align="left">A &#8216;@&#8217; NJEHOSTNAME =&gt; A &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">IF NJEDOMAIN = ” THEN</p>
<p align="left">   A &#8216;@&#8217; ANYNJEHOSTNAME =&gt; A &#8216;%&#8217; ANYNJEHOSTNAME &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">ELSE</p>
<p align="left">   A &#8216;@&#8217; NJEHOSTNAME &#8216;.&#8217; NJEDOMAIN    =&gt; A &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">   A &#8216;@&#8217; NJEHOSTNAME &#8216;.&#8217; ALTNJEDOMAIN =&gt; A &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">   IF NJEDOMAIN CONTAINS &#8216;.&#8217; THEN</p>
<p align="left">      A &#8216;@&#8217; ANYNJEHOSTNAME                  =&gt;</p>
<p align="left">         A &#8216;@&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN;</p>
<p align="left">      A &#8216;@&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN    =&gt;</p>
<p align="left">         A &#8216;@&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN;</p>
<p align="left">      A &#8216;@&#8217; ANYNJEHOSTNAME &#8216;.&#8217; ALTNJEDOMAIN =&gt;</p>
<p align="left">         A &#8216;@&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN;</p>
<p align="left">    ELSE</p>
<p align="left">       A &#8216;@&#8217; ANYNJEHOSTNAME                  =&gt;</p>
<p align="left">          A &#8216;%&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">       A &#8216;@&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN    =&gt;</p>
<p align="left">          A &#8216;%&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">       A &#8216;@&#8217; ANYNJEHOSTNAME &#8216;.&#8217; ALTNJEDOMAIN =&gt;</p>
<p align="left">          A &#8216;%&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">    ENDIF</p>
<p align="left"> ENDIF</p>
<p align="left">A &#8216;@&#8217; TCPHOSTNAME       =&gt; A &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">A &#8216;@&#8217; SHORTTCPHOSTNAME  =&gt; A &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">A &#8216;@&#8217; ALTTCPHOSTNAME    =&gt; A &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">A &#8216;@&#8217; ANYDOMAINNAME     =&gt; A &#8216;@&#8217; ANYDOMAINNAME;</p>
<p align="left">A &#8216;@&#8217; B                 =&gt; A &#8216;@&#8217; B &#8216;.&#8217; TCPHOSTNAMEDOMAIN;</p>
<p align="left"><strong>SMTP secure gateway configuration defaults</strong></p>
<p align="left">If SMTP is configured as a secure gateway, SMTP uses the following defaults:</p>
<p align="left">FIELD DEFINITION SECTION</p>
<p align="left">DEFAULTFIELDS = &#8216;BCC&#8217; &#8216;CC&#8217; &#8216;FROM&#8217; &#8216;REPLY-TO&#8217; &#8216;RESENT-FROM&#8217;</p>
<p align="left">                &#8216;RESENT-REPLY-TO&#8217; &#8216;RESENT-SENDER&#8217; &#8216;RETURN-PATH&#8217;</p>
<p align="left">                &#8216;SENDER&#8217; &#8216;TO&#8217;;</p>
<p align="left">RULE DEFINITION SECTION</p>
<p align="left">SECURENICKADDR    =&gt; SECURENICKNAME &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">A &#8216;@&#8217; NJEHOSTNAME =&gt; A &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">IF NJEDOMAIN NOT = ” THEN</p>
<p align="left">   SECURENICKADDR &#8216;.&#8217; NJEDOMAIN    =&gt; SECURENICKNAME &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">   SECURENICKADDR &#8216;.&#8217; ALTNJEDOMAIN =&gt; SECURENICKNAME &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">   A &#8216;@&#8217; NJEHOSTNAME &#8216;.&#8217; NJEDOMAIN    =&gt; A &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">   A &#8216;@&#8217; NJEHOSTNAME &#8216;.&#8217; ALTNJEDOMAIN =&gt; A &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">   IF NJEDOMAIN CONTAINS &#8216;.&#8217; THEN</p>
<p align="left">      A &#8216;@&#8217; ANYNJEHOSTNAME                  =&gt;</p>
<p align="left">         A &#8216;@&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN;</p>
<p align="left">      A &#8216;@&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN    =&gt;</p>
<p align="left">         A &#8216;@&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN;</p>
<p align="left">      A &#8216;@&#8217; ANYNJEHOSTNAME &#8216;.&#8217; ALTNJEDOMAIN =&gt;</p>
<p align="left">         A &#8216;@&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN;</p>
<p align="left">    ELSE</p>
<p align="left">       A &#8216;@&#8217; ANYNJEHOSTNAME                  =&gt;</p>
<p align="left">          A &#8216;%&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">       A &#8216;@&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN    =&gt;</p>
<p align="left">          A &#8216;%&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">       A &#8216;@&#8217; ANYNJEHOSTNAME &#8216;.&#8217; ALTNJEDOMAIN =&gt;</p>
<p align="left">          A &#8216;%&#8217; ANYNJEHOSTNAME &#8216;.&#8217; NJEDOMAIN &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left">    ENDIF</p>
<p align="left"> ENDIF</p>
<p align="left"> A &#8216;@&#8217; TCPHOSTNAME       =&gt; A &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left"> A &#8216;@&#8217; SHORTTCPHOSTTNAME =&gt; A &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left"> A &#8216;@&#8217; ALTTCPHOSTNAME    =&gt; A &#8216;@&#8217; TCPHOSTNAME;</p>
<p align="left"> A &#8216;@&#8217; ANYDOMAINNAME     =&gt; A &#8216;@&#8217; ANYDOMAINNAME;</p>
<p align="left"> A &#8216;@&#8217; B                 =&gt; A &#8216;@&#8217; B &#8216;.&#8217; TCPHOSTNAMEDOMAIN;</p>
<p align="left"><strong>Examples of header rewrite rules</strong></p>
<p align="left">The following examples show how the header rewriting rules affect an SMTP mail header. The example site is not a secure gateway and is configured as follows:</p>
<p align="left">   TCPHostName      = mvs1.acme.com</p>
<p align="left">   ShortTCPHostName = mvs1</p>
<p align="left">   AltTCPHostName   = seeds.acme.com</p>
<p align="left">   NJEHostName     = mvs1</p>
<p align="left">   NJEDomain       = acmenet</p>
<p align="left">   AltNJEDomain    = centralnet</p>
<p align="left">Note that the above keywords are configured according to the definitions found in <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz002/cfgproc.htm#ssmpkws">Predefined keywords within the SMTP rules</a> (for example, from TCPIP.DATA). In addition, assume that the following are known to be other NJE hosts:</p>
<p align="left">   bird</p>
<p align="left">   iron</p>
<p align="left">Then the following header:</p>
<p align="left">   From: abc@mvs1 (Brendan Beeper)</p>
<p align="left">   To: Jenny Bird &lt;def@bird&gt;</p>
<p align="left">   Cc: ghi@iron.acmenet, j@mvs1,</p>
<p align="left">    k@seeds.acme.com,</p>
<p align="left">    Mailing List &lt;owner@acmenet&gt;,</p>
<p align="left">    lmno@iron.centralnet</p>
<p align="left">   Subject: New Ore</p>
<p align="left">is rewritten by the default header rewriting rules as:</p>
<p align="left">   From: abc@mvs1.acme.com (Brendan Beeper)</p>
<p align="left">   To: Jenny Bird &lt;def%bird.acmenet@mvs1.acme.com&gt;</p>
<p align="left">   Cc: ghi%iron.acmenet@mvs1.acme.com, j@mvs1.acme.com,</p>
<p align="left">    k@mvs1.acme.com,</p>
<p align="left">    Mailing List &lt;owner%acmenet@mvs.acme.com&gt;,</p>
<p align="left">    lmno%iron.acmenet@mvs1.acme.com</p>
<p align="left">   Subject: New Ore</p>
<p align="left">The next example deviates from the defaults listed in <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz002/cfgproc.htm#ssmdsr">Default SMTP rules</a>. On the configuration for nonsecure gateways, if you change the rule before the 2 ENDIFs to:</p>
<p align="left">   A &#8216;@&#8217; AnyNJEHostName &#8216;.&#8217; AltNJEDomain =&gt;</p>
<p align="left">      &#8216;&lt;@&#8217; TCPHostName &#8216;:&#8217; A &#8216;@&#8217; AnyNJEHostName &#8216;.&#8217; NJEDomain &#8216;&gt;&#8217;;</p>
<p align="left">then the last address in the Cc: field within our header is rewritten as:</p>
<p align="left">   Cc: &lt;@mvs1.acme.com:lmno@iron.acmenet&gt;</p>
<p align="left"><strong>Note:</strong></p>
<p align="left">Do not make the change shown in the previous example; it is intended only as a demonstration of the capabilities of the pattern-matching language.</p>
<p align="left"><strong>Step 5: Set up a TCP-to-NJE mail gateway (Optional)</strong></p>
<p align="left">You can configure the SMTP server to run as a mail gateway between TCP network users and users located on a NJE network attached to the local host. This way NJE users can send mail or data sets to users on TCP hosts using SMTPNOTE. See <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halu001/f1a1b990.htm">z/OS Communications Server: IP User&#8217;s Guide and Commands</a> for more information about SMTPNOTE. For JES2, see <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.hasa300/has2a390.htm">z/OS JES2 Initialization and Tuning Guide</a> and <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.hasa400/has2a4a0.htm">z/OS JES2 Initialization and Tuning Reference</a>. For JES3, see<a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.iata600/iat2a690.htm">z/OS JES3 Initialization and Tuning Guide</a> and <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.iata800/iat2a890.htm">z/OS JES3 Initialization and Tuning Reference</a>.</p>
<p align="left">Follow these steps to set up your TCP-to-NJE mail gateway:</p>
<ol>
<li>Add the GATEWAY statement to the SMTP configuration data set. Add other related statements, such as ALTDOMAIN, NJECLASS, NJEDOMAIN, and NJEFORMAT, as required by your configuration.</li>
<li>Issue the SMTPNJE command.</li>
<li>&gt;&gt;-SMTPNJE&#8211;<em>data_set_name(member)</em>&#8211;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8211;&gt;&lt;</li>
<li>                                   |   .-JES2-. |</li>
<li>                                   &#8217;-(-+-JES3-+-&#8217;</li>
<li></li>
</ol>
<p align="left"><strong><em>data_set_name(member)</em></strong><strong></strong></p>
<p align="left">The name of the input data set for SMTPNJE. It specifies the initialization data set of the JES2 or JES3 subsystem that is scanned for NJE nodes by SMTPNJE. The data set name is the same name as defined on ddname HASPPARM in your JES2 procedure or in the JES3IN ddname in your JES3 procedure.</p>
<p align="left"><em>member</em> is the JES2PARM member that contains the NODE and DESTID entries for your installation.</p>
<p align="left"><strong>(</strong></p>
<p align="left">Required delimiter.</p>
<p align="left"><strong>JES2 or JES3</strong></p>
<p align="left">Denotes whether the initialization data set being pointed to is for JES2 or JES3. If omitted, the default is JES2. For JES2, the SMTPNJE program scans for the keywords NODE and DESTID from which it extracts the information. For JES3, the keyword scanned for is NJERMT.</p>
<p align="left">The SMTPNJE program creates the NJE host table data set called<em>user_id</em>.SMTPNJE.HOSTINFO. You can rename this data set and include the name of the data set on the SMTPNJE DD statement in the SMTP cataloged procedure. The //SMTPNJE DD statement is required.</p>
<ol>
<li>Install the SMTP server (along with the TCPIP address space) on the gateway node. Use the GATEWAY, NJEDOMAIN, and NJEFORMAT statements in the configuration data set. Optionally, you can use either the RESTRICT or the SECURE statements to limit which users can use the gateway.</li>
</ol>
<p align="left"><strong>Step 6: Specify configuration statements in SMTP configuration</strong></p>
<p align="left">Copy the member SEZAINST(SMTPCONF) to your own SMTP configuration data set and modify it for your site using the SMTP configuration statements.</p>
<p align="left"><strong>Note:</strong></p>
<p align="left">If the SMTP configuration data set is a sequential data set, you cannot edit the data set while SMTP is running. If the data set is a PDS member, it can be edited while SMTP is running.</p>
<p align="left"><strong>Summary of SMTP configuration statements</strong></p>
<p align="left">The SMTP configuration statements are summarized in <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz002/cfgproc.htm#xtsmtp">Table 70</a> .</p>
<p align="left"><strong>Note:</strong></p>
<p align="left">See <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz001/f1a1b4a0.htm">z/OS Communications Server: IP Configuration Reference</a> for more information about these statements.</p>
<table width="100%" border="1" cellpadding="0">
<thead>
<tr>
<td colspan="2">
<p align="left"><em>Table 70. Summary of SMTP configuration statements</em></p>
</td>
</tr>
<tr>
<td valign="bottom" width="33%">
<p align="left"><strong>Statement</strong></p>
</td>
<td valign="bottom" width="66%">
<p align="left"><strong>Description</strong></p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td valign="top">
<p align="left">ALTNJEDOMAIN</p>
</td>
<td valign="top">
<p align="left">Specifies an alternative domain name of the NJE network, if SMTP is running as a mail gateway.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">ALTTCPHOSTNAME</p>
</td>
<td valign="top">
<p align="left">Specifies an additional host name for the local host. Mail received for this host name is accepted and delivered locally.</p>
</td>
</tr>
<tr>
<td>
<p align="left">ATSIGN</p>
</td>
<td>
<p align="left">Enables SMTP to replace the @ symbol used in addressing strings.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">BADSPOOLFILEID</p>
</td>
<td valign="top">
<p align="left">Specifies the user ID on the local system where SMTP transfers unreadable spool files and looping mail.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">CHECKSPOOLSIZE</p>
</td>
<td valign="top">
<p align="left">Enables SMTP to check the size of the JES spool file prior to writing the data to the hlq.TEMP.NOTE file.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">DBCS</p>
</td>
<td valign="top">
<p align="left">Specifies that DBCS code conversion be performed on the mail.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">DEBUG</p>
</td>
<td valign="top">
<p align="left">Records all SMTP commands and replies.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">DELETEBADSPOOLFILE</p>
</td>
<td valign="top">
<p align="left">Permits SMTP to delete the spool file from the JES spool that would cause an ABENDS001 when accessed by SMTP.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">DISALLOWCMD</p>
</td>
<td valign="top">
<p align="left">Enables the SMTP server to discontinue support for certain specified SMTP commands.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">EXITDIRECTION</p>
</td>
<td valign="top">
<p align="left">Enables SMTP to call the SMTP exit provided by the customer for data coming from the JES spool.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">FINISHOPEN</p>
</td>
<td valign="top">
<p align="left">Specifies the SMTP wait time for connection.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">GATEWAY</p>
</td>
<td valign="top">
<p align="left">Specifies operation of SMTP as a gateway.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">INACTIVE</p>
</td>
<td valign="top">
<p align="left">Specifies the SMTP wait time before closing an inactive connection.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">INBOUNDOPENLIMIT</p>
</td>
<td valign="top">
<p align="left">Specifies a limit on the maximum number of simultaneous TCP connections over which the SMTP server will receive mail.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">IPMAILERADDRESS</p>
</td>
<td valign="top">
<p align="left">Specifies the IP address of an SMTP server that can resolve network addresses of unknown hosts.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">IPMAILERNAME</p>
</td>
<td valign="top">
<p align="left">Enables SMTP to forward non-local mail to the specified IP mailer name.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">LISTENONADDRESS</p>
</td>
<td valign="top">
<p align="left">Allows you to restrict which IP address is used to receive and send mail on a multihomed system.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">LOCALCLASS</p>
</td>
<td valign="top">
<p align="left">Specifies the spool data set class for local mail delivery.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">LOCALFORMAT</p>
</td>
<td valign="top">
<p align="left">Specifies the spool data set format for local host mail delivery.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">LOG</p>
</td>
<td valign="top">
<p align="left">Directs SMTP to log all SMTP traffic.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">MAILER</p>
</td>
<td valign="top">
<p align="left">Specifies the address of the batch SMTP server that receives mail.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">MAILFILEDSPREFIX</p>
</td>
<td valign="top">
<p align="left">Specifies the prefix to add to mail data sets.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">MAILFILESUNIT</p>
</td>
<td valign="top">
<p align="left">Specifies the unit where SMTP mail data sets reside.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">MAILFILEVOLUME</p>
</td>
<td valign="top">
<p align="left">Specifies the volume where newly allocated SMTP data sets reside.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">MAXMAILBYTES</p>
</td>
<td valign="top">
<p align="left">Specifies the maximum size of mail that is accepted over a TCP connection.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">MAXMSGSENT</p>
</td>
<td valign="top">
<p align="left">Enables control of the SMTP client code by limiting the number of messages sent on a single TCP/IP connection.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">NJECLASS</p>
</td>
<td valign="top">
<p align="left">Specifies the spool data set class for mail delivered on an NJE network.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">NJEDOMAIN</p>
</td>
<td valign="top">
<p align="left">Specifies the domain name of the NJE network if SMTP functions as a gateway.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">NJEFORMAT</p>
</td>
<td valign="top">
<p align="left">Specifies the spool data set format for mail delivered on the NJE network.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">NJENODENAME</p>
</td>
<td valign="top">
<p align="left">Specifies the node name of the local JES2 or JES3 node for mail delivered on the NJE network.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">NOLOG</p>
</td>
<td valign="top">
<p align="left">Turns off the logging of mail transactions.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">NOSOURCEROUTE</p>
</td>
<td valign="top">
<p align="left">Enables SMTP to <em>not</em> generate source routing addressing strings on certain RFC 821 SMTP commands.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">OUTBOUNDOPENLIMIT</p>
</td>
<td valign="top">
<p align="left">Specifies a limit on the maximum number of simultaneous TCP connections over which SMTP actively delivers mail.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">PORT</p>
</td>
<td valign="top">
<p align="left">Specifies an alternative port number for the SMTP server during testing.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">POSTMASTER</p>
</td>
<td valign="top">
<p align="left">Specifies the address (or addresses) for mail addressed to the postmaster at the local host.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">RCPTREPLY452</p>
</td>
<td valign="top">
<p align="left">Enables SMTP to handle reply code 452 differently for the RCPT command.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">RCPTRESPONSEDELAY</p>
</td>
<td valign="top">
<p align="left">Specifies how long the SMTP server delays responding to the RCPT commands.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">REMOTEPORT</p>
</td>
<td valign="top">
<p align="left">Specifies the remote port to which the SMTP client connects.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">RESOLVERRETRYINT</p>
</td>
<td valign="top">
<p align="left">Specifies the number of minutes SMTP waits between attempts to resolve domain names.</p>
</td>
</tr>
<tr>
<td>
<p align="left">RESOLVERUSAGE</p>
</td>
<td>
<p align="left">Specifies whether SMTP will send queries to the domain name servers if they are configured in the TCPIP.DATA file.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">RESTRICT</p>
</td>
<td valign="top">
<p align="left">Specifies addresses of users who are not allowed to use SMTP mail services.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">RETRYAGE</p>
</td>
<td valign="top">
<p align="left">Specifies the number of days after which mail is returned as undeliverable.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">RETRYINT</p>
</td>
<td valign="top">
<p align="left">Specifies the number of minutes between attempts to send mail to an inactive TCP host.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">REWRITE822HEADER</p>
</td>
<td valign="top">
<p align="left">Prevents SMTP from rewriting RFC 822 headers with source routing.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">SECURE</p>
</td>
<td valign="top">
<p align="left">Specifies that SMTP operates as a secure mail gateway between TCP network sites and NJE network sites.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">SMSGAUTHLIST</p>
</td>
<td valign="top">
<p align="left">Specifies the addresses of users authorized to issue privileged SMTP SMSG commands.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">SPOOLPOLLINTERVAL</p>
</td>
<td valign="top">
<p align="left">Specifies the interval for SMTP to check the spool for incoming batch data sets.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">STOPONRENF</p>
</td>
<td valign="top">
<p align="left">Enables control of the SMTP server such that if a RENAME failure occurs on a data set associated with the batch connection (257), the SMTP server terminates normally.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">TEMPERRORRETRIES</p>
</td>
<td valign="top">
<p align="left">Specifies the number of times SMTP tries to redeliver mail to a host with a temporary problem.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">TIMEZONE</p>
</td>
<td valign="top">
<p align="left">Sets the printable name of the local time zone.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">WARNINGAGE</p>
</td>
<td valign="top">
<p align="left">Specifies the number of days after which a copy of the mail is returned to the sender, indicating that the mail has so far been undeliverable and that SMTP will continue to retry delivery for RETRYAGE days.</p>
</td>
</tr>
</tbody>
</table>
<p align="left"><strong>Sample SMTP configuration data set (SMTPCONF)</strong></p>
<p align="left">The sample SMTP Configuration data set can be found in SEZAINST(SMTPCONF). See <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz001/f1a1b4a0.htm">z/OS Communications Server: IP Configuration Reference</a> for more information on configuration data set parameters.</p>
<p align="left"><strong>Step 7: Create an SMTP security table (Optional)</strong></p>
<p align="left">If you want to set up a secure TCP-to-NJE gateway, you need to:</p>
<ul>
<li>Include the SECURE statement in the SMTP configuration data set.</li>
<li>Create a security data set that contains a list of NJE users who are authorized to use the gateway.</li>
<li>Create a mailfiledsprefix.SECURITY.MEMO data set. The contents data set are sent to unauthorized NJE users whose mail is rejected. See <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz002/cfgproc.htm#secmem">Rejected mail examples</a> for sample contents of this data set. This data set must be defined as LRECL=255 and RECFM=VB. It will be dynamically allocated by SMTP when needed.</li>
</ul>
<p align="left">The SMTP security data set is pointed to by //SECTABLE DD statement. The security table data set must be allocated with LRECL=255 and RECFM=VB. Records whose first nonblank character is an asterisk (*) are treated as comments and are ignored.</p>
<p align="left">Use the following format when creating the list of NJE users:</p>
<p align="left">&gt;&gt;-<em>NJE_userid</em>&#8211;<em>NJE_nodeid</em>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&gt;</p>
<p align="left">&gt;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&gt;&lt;</p>
<p align="left">   &#8216;-<em>nickname</em>&#8211;<em>primary_nick?</em>&#8211;<em>primary_mbox?</em>-&#8217;</p>
<p align="left"><strong><em>NJE_userid</em></strong><strong></strong></p>
<p align="left">The NJE user ID of the authorized user.</p>
<p align="left"><strong><em>NJE_nodeid</em></strong><strong></strong></p>
<p align="left">The NJE node ID of the authorized user.</p>
<p align="left"><strong><em>nickname</em></strong><strong></strong></p>
<p align="left">The name by which this user is known on the TCP side of the gateway. This name must not contain any special characters, such as &lt; &gt; ( ) [ ] \ . , ; : @ and “.</p>
<p align="left"><strong><em>primary_nick?</em></strong><strong></strong></p>
<p align="left">Either Y or N. If Y is specified, then mail addressed to <em>nickname</em>@smtp-gateway is automatically forwarded to <em>NJE_userid</em> at <em>NJE_nodeid</em>. Each nickname can have only one<em>primary_nick?</em> record set to Y.</p>
<p align="left"><strong><em>primary_mbox?</em></strong><strong></strong></p>
<p align="left">Either Y or N. If Y is specified, then mail from <em>NJE_userid</em> at <em>NJE_nodeid</em> is converted to<em>nickname</em>@smtp-gateway before it is sent to the TCP recipient. Each <em>NJE_userid</em>, <em>NJE_nodeid</em>pair can only have one <em>primary_mbox?</em> record.</p>
<p align="left"><strong>SMTP security data set examples</strong></p>
<p align="left">The following example shows an SMTP security data set:</p>
<p align="left">*  Records for Jane Doe, within IBM</p>
<p align="left">JDOE   ALMADEN</p>
<p align="left">JDOE   AUSTIN</p>
<p align="left">*  Records for John Smith, within IBM</p>
<p align="left">SMITH  RALEIGH   JOHNNY  Y  N</p>
<p align="left">SMITH  YORKTOWN  JOHNNY  N  Y</p>
<p align="left">SMITH  DALLAS    JOHNNY  N  N</p>
<p align="left">SMITH  RALEIGH   JSMITH  Y  Y</p>
<p align="left">For example, mail sent from the following NJE network addresses through the SMTP gateway is rewritten to the following TCP network addresses. Assume the host name of the gateway isSMTP-GATEWAY.IBM.COM.</p>
<p align="left">NJE Address               TCP Address</p>
<p align="left">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p align="left">JDOE  at ALMADEN          JDOE%ALMADEN@SMTP-GATEWAY.IBM.COM</p>
<p align="left">JDOE  at AUSTIN           JDOE%AUSTIN@SMTP-GATEWAY.IBM.COM</p>
<p align="left">SMITH at RALEIGH          JSMITH@SMTP-GATEWAY.IBM.COM</p>
<p align="left">SMITH at YORKTOWN         JOHNNY@SMTP-GATEWAY.IBM.COM</p>
<p align="left">SMITH at DALLAS           JOHNNY%DALLAS@SMTP-GATEWAY.IBM.COM</p>
<p align="left">Mail sent from the TCP network to the following TCP network addresses is forwarded to the following NJE network addresses. Assume the host name of the gateway is SMTP-GATEWAY.IBM.COM.</p>
<p align="left">TCP Address                                NJE Address</p>
<p align="left">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p align="left">JDOE%ALMADEN@SMTP-GATEWAY.IBM.COM          JDOE  at ALMADEN</p>
<p align="left">JDOE%AUSTIN@SMTP-GATEWAY.IBM.COM           JDOE  at AUSTIN</p>
<p align="left">JSMITH@SMTP-GATEWAY.IBM.COM                SMITH at RALEIGH</p>
<p align="left">JOHNNY@SMTP-GATEWAY.IBM.COM                SMITH at RALEIGH</p>
<p align="left">SMITH%DALLAS@SMTP-GATEWAY.IBM.COM          SMITH at DALLAS</p>
<p align="left"><strong>Rejected mail examples</strong></p>
<p align="left">SMTP rejects mail to or from an unauthorized NJE user. If the mail is from the TCP network, SMTP rejects the RCPT TO command with the error:</p>
<p align="left">550 User is not a registered gateway user</p>
<p align="left">If the mail is from the NJE network, SMTP rejects the MAIL FROM command with the error:</p>
<p align="left">550 User is not a registered gateway user</p>
<p align="left">and includes the <em>mailfiledsprefix</em>.SECURITY.MEMO data set as an explanation.</p>
<p align="left">The following example shows a sample <em>mailfiledsprefix</em>.SECURITY.MEMO data set:</p>
<p align="left">The mail you sent to this SMTP gateway cannot be delivered because</p>
<p align="left">you are not a registered user of this gateway.  Contact your local</p>
<p align="left">administrator for instructions on how to be authorized to use this</p>
<p align="left">SMTP gateway.</p>
<p align="left">The following is an example of rejected mail that was sent to an unregistered NJE user:</p>
<p align="left">Date: Fri, 5 Jul 91 10:55:59 EST</p>
<p align="left">From: SMTP@MVS1.ACME.COM</p>
<p align="left">To: DANIEL@MVS1</p>
<p align="left">Subject: Undeliverable Mail</p>
<p align="left">MVS1.ACME.COM unable to deliver following mail to recipient(s):</p>
<p align="left">    &lt;MATT@SMTP-GATEWAY.IBM.COM&gt;</p>
<p align="left">MVS1.ACME.COM received negative reply from host:</p>
<p align="left">    SMTP-GATEWAY</p>
<p align="left">550 User &#8216;MATT@SMTP-GATEWAY&#8217; is not a registered gateway user</p>
<p align="left">           ** Text of Mail follows **</p>
<p align="left">Date: Fri, 5 Jul 91 10:55:56 EDT</p>
<p align="left">From: &lt;DANIEL@MVS1.ACME.COM&gt;</p>
<p align="left">To:   &lt;MATT@SMTP-GATEWAY.IBM.COM&gt;</p>
<p align="left">Subject:  Lunch</p>
<p align="left">Matt,</p>
<p align="left">Do you have time to meet for lunch next week?  I want to discuss the</p>
<p align="left">shipment of ACME iron birdseed.</p>
<p align="left">Daniel</p>
<p align="left">The following is an example of rejected mail that was sent from an unregistered NJE user:</p>
<p align="left">Date: Fri, 5 Jul 91 11:35:18 EST</p>
<p align="left">From: &lt;SMTP@SMTP-GATEWAY.IBM.COM&gt;</p>
<p align="left">To: &lt;MATT@SMTP-GATEWAY.IBM.COM&gt;</p>
<p align="left">Subject: Undeliverable Mail</p>
<p align="left">Unable to deliver mail to some/all recipients.</p>
<p align="left">050 MAIL FROM:&lt;MATT@SMTP-GATEWAY.IBM.COM&gt;</p>
<p align="left">550-User &#8216;MATT@SMTP-GATEWAY&#8217; is not a registered gateway user.</p>
<p align="left">550-</p>
<p align="left">550-The mail you sent to this SMTP gateway cannot be delivered because</p>
<p align="left">550-you are not a registered user of this gateway.  Contact your local</p>
<p align="left">550-administrator for instructions on how to be authorized to use this</p>
<p align="left">550 SMTP gateway.</p>
<p align="left">           ** Text of Mail follows **</p>
<p align="left">HELO SMTP-GATEWAY.IBM.COM</p>
<p align="left">MAIL FROM:&lt;MATT@SMTP-GATEWAY.IBM.COM&gt;</p>
<p align="left">RCPT TO:&lt;DANIEL@MVS1.ACME.COM&gt;</p>
<p align="left">DATA</p>
<p align="left">Date: Fri, 5 Jul 91 11:34:17 EST</p>
<p align="left">From: &lt;MATT@SMTP-GATEWAY.IBM.COM&gt;</p>
<p align="left">To:   &lt;DANIEL@MVS1.ACME.COM&gt;</p>
<p align="left">Subject:  Awaiting your message</p>
<p align="left">Daniel,</p>
<p align="left">When are you going to contact me about the iron birdseed and giant</p>
<p align="left">electromagnet that I ordered?  I would like to meet with you soon.</p>
<p align="left">Matt</p>
<p align="left"> .</p>
<p align="left">QUIT</p>
<p align="left"><strong>Step 8: Enable SMTP domain name resolution</strong></p>
<p align="left">The SMTP server&#8217;s RESOLVERUSAGE statement indicates if domain name resolution is to be used or not. If name resolution is not desired, RESOLVERUSAGE NO should be specified. See<a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz002/cfgproc.htm#step9es">Step 9: Enable sending of non-local messages to other mail servers</a>.</p>
<p align="left">If the RESOLVERUSAGE statement is not specified or is specified as RESOLVERUSAGE YES, the SMTP server will resolve domain names. Resolver TCPIP.DATA statements must be configured before you can use domain name resolution for SMTP. For a description of how TCPIP.DATA statements can be specified, see <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz002/newresolve.htm#newresolve">The resolver</a>.</p>
<p align="left">For more information on the SMTP RESOLVERUSAGE statement and the TCPIP.DATA resolver statements, see <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz001/f1a1b4a0.htm">z/OS Communications Server: IP Configuration Reference</a>.</p>
<p align="left">To use a domain name server, configure the TCPIP.DATA data set with the IP address of one or more name servers. If the TCPIP.DATA data set does not point to any name servers, the local site tables are used by SMTP. However, if the SMTP server is configured to use name servers, SMTP does not use the site tables.</p>
<p align="left">To determine which DSN the SMTP server is using, look for message number EZA5231I in the output data set specified by the OUTPUT statement in SEZAINST(SMTPPROC).</p>
<p align="left">When SMTP uses a domain name server, it asks the domain name server for the MX records for the host to which it is trying to connect. If SMTP does not find MX records for a host, it delivers mail only to the primary host listed in the A records. The MX and A records are coded in the domain name server database.</p>
<p align="left">The basic idea behind MX records is to send the mail as close as possible to the final destination. The destination host may currently be inactive, for example, because it is in another time zone. SMTP needs a synchronous connection to deliver the mail, but due to the different time zones, two systems might never be active at the same time and would never be able to exchange mail.</p>
<p align="left">Using MX records would allow the SMTP server to deliver the mail to an alternate host if the first one is unavailable. SMTP tries to deliver mail to the host with the lowest MX record count. If the host is not currently available, it tries the host with the next lowest count.</p>
<p align="left">For example, if SMTP wants to send mail to USER@BASKET, it checks the name server for MX records and finds the following:</p>
<p align="left">MVS20  BASKET  A</p>
<p align="left">       BASKET  MX  0    MVS20</p>
<p align="left">       BASKET  MX  5    MVS18</p>
<p align="left">       BASKET  MX  10   VMQ</p>
<p align="left">SMTP delivers the mail to the BASKET with the lowest count on its MX record. If MVS20 is unable to receive the mail, SMTP then tries to deliver it to MVS18. If MVS18 cannot receive the mail, it triesVMQ. If none of the hosts can receive the mail, SMTP stores the mail and queues it for later delivery, at which time the process repeats.</p>
<p align="left">For more information about how to add MX records to your name server, consult RFC 974, “Mail Routing and the Domain System.”</p>
<p align="left">To receive a detailed trace on how SMTP is resolving a particular host name, you can issue the SMSG SMTP TRACE command at the console or use a SYSTCPT DD statement in the SMTP cataloged procedure. You can also add the TRACE RESOLVER statement when configuring the TCPIP.DATA data set, but this will also trace the name resolution for all the other applications using the name server. To prevent the console log from becoming too large, only use the TRACE RESOLVER statement for debugging.</p>
<p align="left">If changes to the domain name server requires you to resolve already queued mail again, use the SMSG SMTP EXPIRE command as described in the <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halu001/f1a1b990.htm">z/OS Communications Server: IP User&#8217;s Guide and Commands</a>. You can also query operating statistics, such as mail delivery queues of the SMTP server, by using the SMSG SMTP command. This and other administrative tasks are discussed in more detail in the <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halu001/f1a1b990.htm">z/OS Communications Server: IP User&#8217;s Guide and Commands</a>.</p>
<p align="left"><strong>Step 9: Enable sending of non-local messages to other mail</strong></p>
<p align="left">Non-local mail is mail that must go through a Mail Transfer Agent (MTA) to get to another host. SMTP supports the following configuration statements to assist in forwarding non-local mail:</p>
<ul>
<li>IPMAILERNAME, for non-local mail destined for SMTP servers in the IP network using a hostname</li>
<li>IPMAILERADDRESS, for non-local mail destined for SMTP servers in the IP network using a static IP address</li>
<li>MAILER, for non-local mail destined for SMTP servers in the NJE network using the JES spool</li>
</ul>
<p align="left"><strong>Restriction:</strong> You cannot use the IPMAILERNAME statement, the IPMAILERADDRESS statement, or the MAILER statement with the UNKNOWN option simultaneously.</p>
<p align="left">For more information regarding these configuration statements, see <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.halz001/f1a1b4a0.htm">z/OS Communications Server: IP Configuration Reference</a>.</p>
<p align="left">The SMTP server can be configured to send all your non-local TCP/IP SMTP mail to a specified mail server, or mail relay. You might need to do this if you have installed a firewall. One way to accomplish this is by using IPMAILERADDRESS, making both of the following changes to your<em>hlq</em>.SMTP.CONFIG data set:</p>
<ol>
<li>Inhibit SMTP from attempting to resolve non-local hostnames by specifying the following statement in your SMTP.CONFIG data set:</li>
</ol>
<p align="left">RESOLVERUSAGE NO</p>
<ol>
<li>Update the SMTP.CONFIG file to redirect mail to a specific server using the IPMAILERADDRESS statement:</li>
</ol>
<p align="left">IPMAILERADDRESS ip_address</p>
<p align="left">where ip_address is address of the mail server that can perform the hostname resolution.</p>
<p align="left"><strong>Step 10: Design SMTP exit to inspect and filter unwanted mail</strong></p>
<p align="left">The SMTP exit facility allows an installation to better control the volume of unwanted mail (spam) that is entering the installation. SMTP makes use of the Dynamic Exit Facility (CSVDYNEX macro) provided by MVS. See <a href="http://publib.boulder.ibm.com/infocenter/zos/v1r12/topic/com.ibm.zos.r12.ieaa800/iea2a8b0.htm">z/OS MVS Programming: Authorized Assembler Services Guide</a> for more information. The exit is provided by the customer to implement policies that they deem workable. Based on user-defined (and implemented) criteria, individual mail items may be rejected before they consume other resources. SMTPEXIT is provided as a programming guide to aid in the implementation of the local policies. It can be found in SEZAINST. This exit must be REENTRANT and AMODE 31, in an authorized library. In using the SMTP exit a name token (EZBTCPIPSMTPEXIT) needs to be established in SYS1.PARMLIB(PROGxx).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sweetytang.com/archives/137.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一切都只为让你更美好</title>
		<link>http://www.sweetytang.com/archives/132.html</link>
		<comments>http://www.sweetytang.com/archives/132.html#comments</comments>
		<pubDate>Wed, 10 Jul 2013 14:46:40 +0000</pubDate>
		<dc:creator>牧羊人</dc:creator>
				<category><![CDATA[他山之玉]]></category>
		<category><![CDATA[年华，岁月]]></category>

		<guid isPermaLink="false">http://www.sweetytang.com/?p=132</guid>
		<description><![CDATA[走着走着，就想要把这一切都记下来，住了两年的房间，工作了两年的办公室，走 了两年的街道，还有巴黎咖哚精致的糕点。这一切都在眼前，我想着不用刻意记录我也 不会忘记，但谁知道呢。那些回去了的人，回去的时候欢欣雀跃，回去了之后却又怀念 这里的简单安逸，跟他们提起这里的谁换工作了，谁结婚了，谁怎样了，他们满脸兴奋 ，这些几乎再也不可能见到的人在他们心中还留有记忆。但那终究是要回去了之后的事 。     从去年七月到今天，整整一年时间，总共回家待了四天，和弟弟见过一次面，说话 不超过十句，和其他的兄弟姐妹则从未见过，甚至未曾电话联系过，我其实是一个恋家 的人。 昨天晚上心血来潮给姐姐打了一个电话，原本以为彼此会因为长时间未联系而陌生 尴尬，结果电话那头依然熟悉亲切的声音竟让我有一丝莫名的感动。 我们谈到前几天是外婆的生日，家里聚了好多人，继而又谈到她的生日我的生日， 她说每年她生日时叔叔都会给她打电话，我没良心不记得，我辩解，是三月初三，很好 记的日子，可是我的生日十月初十更好记，叔叔却从未给我打过电话。她笑我：“让你 总不回家，大家都把你给忘了。”她说：“干嘛要跑那么远，回这边多好，离家近。” 记起外婆也说过类似的话：“不要去了，回来好好找个男朋友。”我都只是笑笑，找男 朋友为啥一定要回来？其实是我不懂，那时却自以为是，以为经得起时间和距离考验的 感情才是所谓真的爱情。 姐姐问我：“这两年他去看过你吗？”好面子的我为他找了一堆借口，最终还是被 姐姐一句话噎住，然后有点不好意思，有一瞬间的失落，而后又觉得那些早已过去，不 必追究，其实我心里早就明白的吧，你对他有那么多不满，又凭什么让他死心塌地的对 你，更何况时间和空间都是很神奇的东西，他们能让不可或缺的变成可有可无，让仿佛 弥足珍贵的记忆变得模糊，即便是所谓最刻骨铭心的初恋，那刻骨铭心四个字的意义不 过是你记得关于他的事多一点点，只是记得，不一定怀念。有人曾说，当你多年以后回 忆往事，会知道自己当初有多幼稚，可问题在于，多年以后你能记得的是什么，你能回 忆起的又是什么。从这个角度看，相濡以沫比那些抓不住的虚幻感情要真实得多。 是的，在这里的两年他没有来看过我。我曾经对此耿耿于怀，但是看看周围，心里 又有些许安慰，大家都一样吧，特地为了团聚而来的都是家属。两年独自在异国他乡的 生活其实再平淡不过，若非要找出点什么特别的来，那可能就是对未来的焦虑会多一些 ，会加倍珍惜在身边的朋友，是他们陪你走过这两年，可是几乎你在这里认识的所有人 ，无论越南人还是中国人，可能这辈子你都不会再见到，你即将离开一个又一个城市， 去开始新的生活，几年之后，就连带走的记忆也会模糊不清。 短暂而美好的年华里走走停停，感动欣喜悲伤哭泣，终归会有心境平淡的一天，想 起那个词，随遇而安，随意而安。 两年以前，两年之间，除了记忆什么也留不下，只有那些亲人朋友，只要你回来， 他们一直在那里，而有些，必然是永远的逝去，有一天你也会明白，那逝去其实也并没 什么可惜，一切都只为让你更美好。 (本文转载自瀚海星云BBS，转载请注明出处)]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sweetytang.com/wp-content/uploads/2013/07/9474dcb5314b1ff1f14f627347d659ed.jpg"><img class=" wp-image-134 alignright" title="9474dcb5314b1ff1f14f627347d659ed" src="http://www.sweetytang.com/wp-content/uploads/2013/07/9474dcb5314b1ff1f14f627347d659ed-300x225.jpg" alt="" width="180" height="135" /></a>走着走着，就想要把这一切都记下来，住了两年的房间，工作了两年的办公室，走<br />
了两年的街道，还有巴黎咖哚精致的糕点。这一切都在眼前，我想着不用刻意记录我也<br />
不会忘记，但谁知道呢。那些回去了的人，回去的时候欢欣雀跃，回去了之后却又怀念<br />
这里的简单安逸，跟他们提起这里的谁换工作了，谁结婚了，谁怎样了，他们满脸兴奋<br />
，这些几乎再也不可能见到的人在他们心中还留有记忆。但那终究是要回去了之后的事<br />
。<br />
<span id="more-132"></span>    从去年七月到今天，整整一年时间，总共回家待了四天，和弟弟见过一次面，说话<br />
不超过十句，和其他的兄弟姐妹则从未见过，甚至未曾电话联系过，我其实是一个恋家<br />
的人。</p>
<p>昨天晚上心血来潮给姐姐打了一个电话，原本以为彼此会因为长时间未联系而陌生<br />
尴尬，结果电话那头依然熟悉亲切的声音竟让我有一丝莫名的感动。</p>
<p>我们谈到前几天是外婆的生日，家里聚了好多人，继而又谈到她的生日我的生日，<br />
她说每年她生日时叔叔都会给她打电话，我没良心不记得，我辩解，是三月初三，很好<br />
记的日子，可是我的生日十月初十更好记，叔叔却从未给我打过电话。她笑我：“让你<br />
总不回家，大家都把你给忘了。”她说：“干嘛要跑那么远，回这边多好，离家近。”<br />
记起外婆也说过类似的话：“不要去了，回来好好找个男朋友。”我都只是笑笑，找男<br />
朋友为啥一定要回来？其实是我不懂，那时却自以为是，以为经得起时间和距离考验的<br />
感情才是所谓真的爱情。</p>
<p>姐姐问我：“这两年他去看过你吗？”好面子的我为他找了一堆借口，最终还是被<br />
姐姐一句话噎住，然后有点不好意思，有一瞬间的失落，而后又觉得那些早已过去，不<br />
必追究，其实我心里早就明白的吧，你对他有那么多不满，又凭什么让他死心塌地的对<br />
你，更何况时间和空间都是很神奇的东西，他们能让不可或缺的变成可有可无，让仿佛<br />
弥足珍贵的记忆变得模糊，即便是所谓最刻骨铭心的初恋，那刻骨铭心四个字的意义不<br />
过是你记得关于他的事多一点点，只是记得，不一定怀念。有人曾说，当你多年以后回<br />
忆往事，会知道自己当初有多幼稚，可问题在于，多年以后你能记得的是什么，你能回<br />
忆起的又是什么。从这个角度看，相濡以沫比那些抓不住的虚幻感情要真实得多。</p>
<p>是的，在这里的两年他没有来看过我。我曾经对此耿耿于怀，但是看看周围，心里<br />
又有些许安慰，大家都一样吧，特地为了团聚而来的都是家属。两年独自在异国他乡的<br />
生活其实再平淡不过，若非要找出点什么特别的来，那可能就是对未来的焦虑会多一些<br />
，会加倍珍惜在身边的朋友，是他们陪你走过这两年，可是几乎你在这里认识的所有人<br />
，无论越南人还是中国人，可能这辈子你都不会再见到，你即将离开一个又一个城市，<br />
去开始新的生活，几年之后，就连带走的记忆也会模糊不清。</p>
<p>短暂而美好的年华里走走停停，感动欣喜悲伤哭泣，终归会有心境平淡的一天，想<br />
起那个词，随遇而安，随意而安。</p>
<p>两年以前，两年之间，除了记忆什么也留不下，只有那些亲人朋友，只要你回来，<br />
他们一直在那里，而有些，必然是永远的逝去，有一天你也会明白，那逝去其实也并没<br />
什么可惜，一切都只为让你更美好。</p>
<p>(本文转载自瀚海星云BBS，转载请注明出处)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sweetytang.com/archives/132.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>徽州梦 ——半山半水半人家，亦晴亦雨亦潇洒</title>
		<link>http://www.sweetytang.com/archives/128.html</link>
		<comments>http://www.sweetytang.com/archives/128.html#comments</comments>
		<pubDate>Tue, 19 Mar 2013 15:04:57 +0000</pubDate>
		<dc:creator>牧羊人</dc:creator>
				<category><![CDATA[他山之玉]]></category>
		<category><![CDATA[徽州]]></category>

		<guid isPermaLink="false">http://www.sweetytang.com/?p=128</guid>
		<description><![CDATA[像是在梦乡里走了一遭，而今依然夜夜梦回那半山半水亦晴亦雨的古徽州，那山 光水色，那雕梁画栋，那皖南人家的韵味，便非文人骚客也当沉醉不醒。柔肠百结，愿 成文以记述其体味，千般感慨，竟不能道尽其一二。遂以时间为线索，略道表象。 第一天：龙吟自九天而来，流珠溅玉璧山间 从合肥出发，坐四个小时汽车便到了黄山脚下的汤口镇，在大众饭店安顿下来之 后，用过午膳，由少东家驱车带往三四里外的九龙瀑。此时晨雾已散，空气之中夹杂着 水汽而愈发清新怡人。四周竹林环绕，碧色可爱。入大门不远便是龙女潭，高约二三米 的小瀑布分两股而下，潭水颇深却清澈见底，颇有女子之灵气。逆流而上，过茶园往双 龙戏珠走，在边上的竹林转悠了好一会儿，直至手上沾满白色竹霜才恋恋不舍下来，洗 手方觉溪水寒气逼人。沿林间小道而上，四周松竹相间，溪流相伴，颇为乐事。不觉到 了第九瀑布，但见一大方褐色巨石裸立，水流四散沿石壁飞下，水势不大而磅礴气势尽 显。原来这九龙瀑乃一溪之流自上而下 ，一瀑一折，计九瀑九潭，故又称为九龙潭。往 上见第三四五瀑相连，但见一条白龙自苍穹而下深潭，视觉上的突兀呈现，脱口便是古 人的赞叹“飞流直下三千尺，疑是银河落九天”。白龙三折身，三练遂成。瀑流声响， 可作龙吟之感，而飞散的水气打在身上，清凉透心。此时此刻，此情此景，身心涤荡， 不作他想。 第二天：雾里看山云间岛，翠屏入眼名家画 乘坐旅游专线客车走约20分钟的U字形盘山公路便到了九龙瀑之上的云谷寺，海拔约800米。从云谷寺乘坐十几分钟缆车到达后山景区的起点白鹅岭。缆车行于山间，依 稀可辨雾气缭绕着怪石绿树，若列子御风而行可是这般景象？过白鹅岭到石笋矼，只见 风追云雾，近山常如影，远一些的时隐时现，不知山有几重，雾有几缕。往上登抵始信 峰，正是云海波涛之际，远山重重，盖如白色海洋中的一个个零星岛屿，蔚为奇观。我 最是愚昧，在盘山公路看到黄山初颜之际便信了黄山之神奇，古人却要登及此处始信， 自叹弗如也。 下始信峰，行于群山之间，正是山杜鹃盛开的时节，白杜鹃将谢红杜鹃含苞，紫 色杜鹃落花正好。花叶之上遍凝晨露，晶莹剔透令人心生爱怜。奇松遍地，竖琴松、团 结松、连理松等不可胜数。流连于山林风光，至西海大峡谷却换了一番景象：群山突兀 高耸，点缀上顽强的绿树如同两道翠绿屏风矗立，相向围成一险峻而不乏秀丽的峡谷。 此间筑路多修护栏，如藤如竹如峰，并不单调。下至近谷底处，仰见层峦叠嶂，累石披 树，便是山居幽谷客，亦不寂寞。返身过排云亭，上飞来峰，见墨云渐开，阳光透过厚 厚云层一线射出，精神非凡。遂折回丹霞峰，寻了个西向石坡，静等日落。时下午五点 半，隐匿于云层的阳光仍有些晃眼，半个小时后竟云开日明，头顶上软云晕染了阳光的 橙色，而太阳附近只留几缕高空飞云。飞来峰一带受夕阳的照射，也镀上薄薄一层冷橙 色。待冷日消失于天际线之后，被寒气侵蚀的我们不得不跑着回狮林公寓，以图让身子 暖起来。 第三天：壁立千仞步仙桥，鹤发独行莲花峰 早上四点起来时室友们已经朝着光明顶出发了，简单洗漱后加了厚外套打了瓶暖 手热水，我们便也上了距公寓500米的狮子峰。一路上去，等候日出的人们已经许多，东 方也已泛红，狮子峰顶被封山了，我们便在猴子观海观景台给自己找了个立足之地，参 与到这等待之中。早晨的山头，寒风凌厉，同伴不得不披起雨衣作挡风之用。天际线是 一条抹不去的阴影，甚至我猜不透它是远山之外的远山还是光线折射的影像。太阳如期 升起，近处的狮子峰被镀上一层暖暖明艳的橙红，新生的一天似乎总该这么美好。 无暇感慨，踏着这暖洋洋的晨光，登上光明顶又下了光明顶，朝着步仙桥方向而去。一 路上游人甚少，一则此时尚早旅行团们还没有上山，二来由于步仙桥与西海大峡谷之间 的谷底被封闭，许多人为不原路返回便弃了这个景点。此处多巨石耸立，陡峭异常，常 见两峰之间一线而下，其一峰陡角愈80°两峰夹角小于30°，故而一些古人开辟的路线 前立着“游人止步”的牌子，怕是过分险峻不宜涉足吧。有几段台阶皆是在一方巨石上 直接开凿出来，颇有情致。下至步仙桥处，人在巨石之间，迎面便是高耸石壁，敬畏之 心一见而生。步仙桥一段介于两石峰之间，下壑深数十米，上峰高亦数十米，难以相信 此人力所为。有恐高男生，弃拐四脚兢兢而下。如此夹缝高峰，无怪山风阵阵，似虎啸 龙吟，而更增敬畏之心。 午后在鳌鱼峰遇到几个旅行团拥挤不堪之后，登莲花峰的路线上，游人便又少了，毕竟 不是所有人都敢挑战最高峰的(+1864m)。途中遇到一名约有七十岁的老爷爷独自登山， 这并不十分令我们惊奇。因为昨天在西海大峡谷见到他时，便听说了他的登山计划，原 本三天的计划由于封谷而改作两天，步仙桥便是由于要原路返回被他弃了的，而莲花峰 自然他会上来。老爷爷爬山心平气和，且走且停，故而精神一直很好不似我们年轻人爬 一段就一副要趴了的样子。同行好一段之后，下山时由于峭壁太陡，眼观手扶，渐渐把 老爷爷甩到后头了。然而他那仙风道骨的形象，依然是我此行的一大收获。 穿过熙熙攘攘与迎客松合影的人群，看看天色还早，慢悠悠地走下山到慈光阁搭乘专线 回到大众饭店，结束了两天的登山之旅。有时觉得收获美景太多一下子难以消化，有时 又想这黄山忒大并未尽兴观赏定要择日重来。同伴曰：“朝闻道，夕死可矣”。 第四天：不通周易负呈坎，慧心妙手献徽雕 游客之多，汤口到屯溪的车子从来不缺。到屯溪和一对父子一起包了一辆轿车朝歙县出 发。歙县本是古徽州所在地，众多徽州文化都发源于此。与黟县同在黄山脚下，却由于 宣传劣势或者什么原因，其旅游发展远不如黟县，县城也是简陋十分。按说徽州古村落 三百余家，家家开张收门票，未必西递宏村南屏就当居首。心下为之不平同时，却也正 是为了躲避人潮，才幸能与呈坎结缘。呈坎正是这三百家里一家，在油菜花开放的季节 由于位于黄山和婺源之间而游客较盛，其它时间，比如今日，售票处竟是门可罗雀。天 空正下着小雨，打起一把小伞，我们三四个闲人就这样冒昧地闯入了这宁静的村庄。以 周易为纲的呈坎又号八卦村，小小村庄却有三街九十九巷，转过几条小巷子之后我们成 功地找不到北了。最后问了敬老院的爷爷奶奶们，才找到护村的小河，之后以河为指南 才免遭迷路。这里保留着许多明朝民居建筑，斑驳的墙面远不如照片中宏村的清丽，在 小雨的滋润下却散发着一种浓浓的韵味。原是徽商修建的住宅，因而高墙大院精致异常 的呈坎天生就是一座留守村庄。古时年轻人在外经商，今日亦出外谋生。村中设有留守 儿童学校和养老院，留居的村民见惯喧闹的游人，默默沿着自己生活的轨迹前进着，不 屑于多看你一眼。 来到歙县，说起徽州文化，免不得那些巧夺天工的雕刻：砖雕石雕木雕竹雕砚雕，件件 精湛。许是这缠缠绵绵的小雨将人们的心灵也淘澄得空灵秀丽，蜿蜒的新安江流淌着多 少美丽的画卷，而这些图画乘着无孔不入雨雾的翅膀渗进那一块块石头木头的肌理中， 方才生成了这鬼斧神工细腻逼真的雕刻吧。位于县城的徽商大宅院是今人将二十余处徽 州古建筑融为一体的杰作，廊间檐上，无不精雕细琢，堪堪一座徽雕博物馆，令人叹为 观止。位于市区的老街上也开满了各种手工艺品商店，且不说那司空见惯的木雕，单是 卖歙砚的商店也能叫你眼花缭乱。小至身份证大小的砚台也要刻上一支葫芦，大至水槽 大小的砚缸更是双龙抢珠、梅开富贵各色繁复，附庸风雅或者财大气粗者都可以在此找 到适合的道具。真正的文人自然讲究砚台的质量，不像我辈为花纹所倾倒。 结语 他乡异客，不知来何处去何方；孤陋寡闻，未闻天之高地之厚。惟此时此刻，斯情斯境 ，立于徽州之地，俯仰山水之灵秀，感悟古今人物之风采，自叹微渺，曰：功名可负， 山水不能负。 (备注：本文转自瀚海星云BBS，转载请注明出处)]]></description>
			<content:encoded><![CDATA[<p>像是在梦乡里走了一遭，而今依然夜夜梦回那半山半水亦晴亦雨的古徽州，那山 光水色，那雕梁画栋，那皖南人家的韵味，便非文人骚客也当沉醉不醒。柔肠百结，愿 成文以记述其体味，千般感慨，竟不能道尽其一二。遂以时间为线索，略道表象。</p>
<p><span id="more-128"></span>第一天：龙吟自九天而来，流珠溅玉璧山间</p>
<p>从合肥出发，坐四个小时汽车便到了黄山脚下的汤口镇，在大众饭店安顿下来之 后，用过午膳，由少东家驱车带往三四里外的九龙瀑。此时晨雾已散，空气之中夹杂着 水汽而愈发清新怡人。四周竹林环绕，碧色可爱。入大门不远便是龙女潭，高约二三米 的小瀑布分两股而下，潭水颇深却清澈见底，颇有女子之灵气。逆流而上，过茶园往双 龙戏珠走，在边上的竹林转悠了好一会儿，直至手上沾满白色竹霜才恋恋不舍下来，洗 手方觉溪水寒气逼人。沿林间小道而上，四周松竹相间，溪流相伴，颇为乐事。不觉到 了第九瀑布，但见一大方褐色巨石裸立，水流四散沿石壁飞下，水势不大而磅礴气势尽 显。原来这九龙瀑乃一溪之流自上而下 ，一瀑一折，计九瀑九潭，故又称为九龙潭。往 上见第三四五瀑相连，但见一条白龙自苍穹而下深潭，视觉上的突兀呈现，脱口便是古 人的赞叹“飞流直下三千尺，疑是银河落九天”。白龙三折身，三练遂成。瀑流声响， 可作龙吟之感，而飞散的水气打在身上，清凉透心。此时此刻，此情此景，身心涤荡， 不作他想。</p>
<p>第二天：雾里看山云间岛，翠屏入眼名家画</p>
<p>乘坐旅游专线客车走约20分钟的U字形盘山公路便到了九龙瀑之上的云谷寺，海拔约800米。从云谷寺乘坐十几分钟缆车到达后山景区的起点白鹅岭。缆车行于山间，依 稀可辨雾气缭绕着怪石绿树，若列子御风而行可是这般景象？过白鹅岭到石笋矼，只见 风追云雾，近山常如影，远一些的时隐时现，不知山有几重，雾有几缕。往上登抵始信 峰，正是云海波涛之际，远山重重，盖如白色海洋中的一个个零星岛屿，蔚为奇观。我 最是愚昧，在盘山公路看到黄山初颜之际便信了黄山之神奇，古人却要登及此处始信， 自叹弗如也。</p>
<p>下始信峰，行于群山之间，正是山杜鹃盛开的时节，白杜鹃将谢红杜鹃含苞，紫 色杜鹃落花正好。花叶之上遍凝晨露，晶莹剔透令人心生爱怜。奇松遍地，竖琴松、团 结松、连理松等不可胜数。流连于山林风光，至西海大峡谷却换了一番景象：群山突兀 高耸，点缀上顽强的绿树如同两道翠绿屏风矗立，相向围成一险峻而不乏秀丽的峡谷。 此间筑路多修护栏，如藤如竹如峰，并不单调。下至近谷底处，仰见层峦叠嶂，累石披 树，便是山居幽谷客，亦不寂寞。返身过排云亭，上飞来峰，见墨云渐开，阳光透过厚 厚云层一线射出，精神非凡。遂折回丹霞峰，寻了个西向石坡，静等日落。时下午五点 半，隐匿于云层的阳光仍有些晃眼，半个小时后竟云开日明，头顶上软云晕染了阳光的 橙色，而太阳附近只留几缕高空飞云。飞来峰一带受夕阳的照射，也镀上薄薄一层冷橙 色。待冷日消失于天际线之后，被寒气侵蚀的我们不得不跑着回狮林公寓，以图让身子 暖起来。</p>
<p>第三天：壁立千仞步仙桥，鹤发独行莲花峰</p>
<p>早上四点起来时室友们已经朝着光明顶出发了，简单洗漱后加了厚外套打了瓶暖 手热水，我们便也上了距公寓500米的狮子峰。一路上去，等候日出的人们已经许多，东 方也已泛红，狮子峰顶被封山了，我们便在猴子观海观景台给自己找了个立足之地，参 与到这等待之中。早晨的山头，寒风凌厉，同伴不得不披起雨衣作挡风之用。天际线是 一条抹不去的阴影，甚至我猜不透它是远山之外的远山还是光线折射的影像。太阳如期 升起，近处的狮子峰被镀上一层暖暖明艳的橙红，新生的一天似乎总该这么美好。 无暇感慨，踏着这暖洋洋的晨光，登上光明顶又下了光明顶，朝着步仙桥方向而去。一 路上游人甚少，一则此时尚早旅行团们还没有上山，二来由于步仙桥与西海大峡谷之间 的谷底被封闭，许多人为不原路返回便弃了这个景点。此处多巨石耸立，陡峭异常，常 见两峰之间一线而下，其一峰陡角愈80°两峰夹角小于30°，故而一些古人开辟的路线 前立着“游人止步”的牌子，怕是过分险峻不宜涉足吧。有几段台阶皆是在一方巨石上 直接开凿出来，颇有情致。下至步仙桥处，人在巨石之间，迎面便是高耸石壁，敬畏之 心一见而生。步仙桥一段介于两石峰之间，下壑深数十米，上峰高亦数十米，难以相信 此人力所为。有恐高男生，弃拐四脚兢兢而下。如此夹缝高峰，无怪山风阵阵，似虎啸 龙吟，而更增敬畏之心。</p>
<p>午后在鳌鱼峰遇到几个旅行团拥挤不堪之后，登莲花峰的路线上，游人便又少了，毕竟 不是所有人都敢挑战最高峰的(+1864m)。途中遇到一名约有七十岁的老爷爷独自登山， 这并不十分令我们惊奇。因为昨天在西海大峡谷见到他时，便听说了他的登山计划，原 本三天的计划由于封谷而改作两天，步仙桥便是由于要原路返回被他弃了的，而莲花峰 自然他会上来。老爷爷爬山心平气和，且走且停，故而精神一直很好不似我们年轻人爬 一段就一副要趴了的样子。同行好一段之后，下山时由于峭壁太陡，眼观手扶，渐渐把 老爷爷甩到后头了。然而他那仙风道骨的形象，依然是我此行的一大收获。 穿过熙熙攘攘与迎客松合影的人群，看看天色还早，慢悠悠地走下山到慈光阁搭乘专线 回到大众饭店，结束了两天的登山之旅。有时觉得收获美景太多一下子难以消化，有时 又想这黄山忒大并未尽兴观赏定要择日重来。同伴曰：“朝闻道，夕死可矣”。</p>
<p>第四天：不通周易负呈坎，慧心妙手献徽雕</p>
<p>游客之多，汤口到屯溪的车子从来不缺。到屯溪和一对父子一起包了一辆轿车朝歙县出 发。歙县本是古徽州所在地，众多徽州文化都发源于此。与黟县同在黄山脚下，却由于 宣传劣势或者什么原因，其旅游发展远不如黟县，县城也是简陋十分。按说徽州古村落 三百余家，家家开张收门票，未必西递宏村南屏就当居首。心下为之不平同时，却也正 是为了躲避人潮，才幸能与呈坎结缘。呈坎正是这三百家里一家，在油菜花开放的季节 由于位于黄山和婺源之间而游客较盛，其它时间，比如今日，售票处竟是门可罗雀。天 空正下着小雨，打起一把小伞，我们三四个闲人就这样冒昧地闯入了这宁静的村庄。以 周易为纲的呈坎又号八卦村，小小村庄却有三街九十九巷，转过几条小巷子之后我们成 功地找不到北了。最后问了敬老院的爷爷奶奶们，才找到护村的小河，之后以河为指南 才免遭迷路。这里保留着许多明朝民居建筑，斑驳的墙面远不如照片中宏村的清丽，在 小雨的滋润下却散发着一种浓浓的韵味。原是徽商修建的住宅，因而高墙大院精致异常 的呈坎天生就是一座留守村庄。古时年轻人在外经商，今日亦出外谋生。村中设有留守 儿童学校和养老院，留居的村民见惯喧闹的游人，默默沿着自己生活的轨迹前进着，不 屑于多看你一眼。</p>
<p>来到歙县，说起徽州文化，免不得那些巧夺天工的雕刻：砖雕石雕木雕竹雕砚雕，件件 精湛。许是这缠缠绵绵的小雨将人们的心灵也淘澄得空灵秀丽，蜿蜒的新安江流淌着多 少美丽的画卷，而这些图画乘着无孔不入雨雾的翅膀渗进那一块块石头木头的肌理中， 方才生成了这鬼斧神工细腻逼真的雕刻吧。位于县城的徽商大宅院是今人将二十余处徽 州古建筑融为一体的杰作，廊间檐上，无不精雕细琢，堪堪一座徽雕博物馆，令人叹为 观止。位于市区的老街上也开满了各种手工艺品商店，且不说那司空见惯的木雕，单是 卖歙砚的商店也能叫你眼花缭乱。小至身份证大小的砚台也要刻上一支葫芦，大至水槽 大小的砚缸更是双龙抢珠、梅开富贵各色繁复，附庸风雅或者财大气粗者都可以在此找 到适合的道具。真正的文人自然讲究砚台的质量，不像我辈为花纹所倾倒。</p>
<p>结语</p>
<p>他乡异客，不知来何处去何方；孤陋寡闻，未闻天之高地之厚。惟此时此刻，斯情斯境 ，立于徽州之地，俯仰山水之灵秀，感悟古今人物之风采，自叹微渺，曰：功名可负， 山水不能负。</p>
<p style="text-align: right;">(备注：本文转自瀚海星云BBS，转载请注明出处)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sweetytang.com/archives/128.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
