顯示具有 Computer technic 標籤的文章。 顯示所有文章
顯示具有 Computer technic 標籤的文章。 顯示所有文章

2010年2月4日 星期四

SQL 2008 交易式複寫 - 採用Pull方式

這次使用SQL Server 2008複寫,問題一大堆,
最後終於可以使用了,遇到的問題與解決方法

使用SQL Server複寫,複寫發行一定要用Enterprise版,
可以下載試用版來試,裝好一個instance可用180天,
另外,在複寫時使用的帳戶也很重要,(第一個問題)
因為複寫要用到網路芳鄰,
所以在執行SQL server和SQL Agent的帳戶,一定要是本機帳戶,
不能用Local System(用到的帳戶要在裝SQL之前就要建立)。
除此之外,若要使用Pull方式,Client端也要是Enterprise,
原因是要用來當Distributer,(第二個遇到的問題)
另外,初始化(Initialize)複寫是關鍵所在,
只要單一資料表的內容超過1000筆,使用快照集初始化就會失敗,
所以資料量大時,就要採用備份檔來初始化複寫設定,
(這也是我遇到最大的問題,後來google找一下才發現這個問題)


2009年12月16日 星期三

SQL 2008 安裝遇到的問題

這兩天在安裝SQL Server 2008 Enterprise,結果遇到一個很詭異的大問題,
安裝完SQL,竟然不能啟用服務…

查了log檔,發現錯誤很離譜,Server上明明就沒有"E"磁碟,
錯誤竟然是「FCB::Open failed: Could not open file e:\sql10_main_t\sql\mkmastr\databases\objfre\i386\model.mdf」

找了相關的文章,才發現有一堆人跟遇到一樣的問題,
Problem on starting SQL Server
看了一下討論的過程,還蠻好笑的,
有重新安裝SQL Server的,但有人解決了,有人沒解決
總之,我不想重新安裝,浪費時間又沒效率
還有人直接在E磁碟建相同的目錄,
再把SQL安裝目錄下的model、master、msdb等mdf檔直接copy過去,解決
也有人跟我一樣的情形,沒有E磁碟,所以不可行
還好後來有人在msdn上找到解決方法了,

解法如下:
在command line模式中,進入C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Release目錄下,

輸入指令:
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts /[ SAPWD= StrongPassword ]

解決@@

詳細說明請參考msdn: Rebuilding System Databases

2009年2月28日 星期六

Send mail in JavaMail with gmail smtp

最近用到Java Mail,正在煩惱要用哪個Smtp Server來寄信,就想到用Gmail

附上程式碼....

import java.security.Security;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.sun.net.ssl.internal.ssl.Provider;

public class GmailSend {
private String mailhost = "smtp.gmail.com";

public synchronized void sendMail(String subject, String body, String sender, String recipients) throws Exception {

Security.addProvider(new Provider());

Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtp.gmail.com");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.quitwait", "false");

Session session = Session.getDefaultInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("your@gamil.com", "password@gmail");
}
});

MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(sender,"nickname of sender"));
message.setSubject(subject);
message.setContent(body, "text/plain;charset=big5");
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));

Transport.send(message);
System.out.println("finished!");
}

}


原始連結:
http://yuweijun.blogspot.com/2008/11/send-mail-through-gmail-smtp-using.html

2009年2月19日 星期四

Perl中對URL參數進行編碼

在打工的時候遇到的問題,
今天找了好久,終於找到解決方法了
原來是big5轉utf8的問題…

首先,因為原本存在MySQL中的資料是以big5編碼的,
所以要傳到utf8的網頁當參數時,除了用url的編碼外,
還要用encode編一次,但是這還不夠,
由於是big5碼,所以要先以big5解碼,再轉utf8,
於是…解法如下:
-------------------------------------------------------------------------------
use Encode;
use CGI;

$url_para = encode("utf8",decode("big5",$original_str));

$final_para = uri_escape($url_para);
-------------------------------------------------------------------------------

That's all.

2009年2月14日 星期六

Prototype在Firefox中無法正常運作bug

Prototype.js 1.6.0.3中有一處bug,
導致Ajax.Request對象無法在Firefox下正常運作,
找了好久,終於找到相關的修正方法了…

原版本:
for (var name in headers)
this.transport.setRequestHeader(name, headers[name]);
},

修正後:
for (var name in headers)
if(typeof headers[name] != 'function')
this.transport.setRequestHeader(name, headers[name]);
},

終於可以正常運作了,
只是沒想到這個bug在1.5版就有了。

參考:
http://www.cnblogs.com/beginor/archive/2007/06/02/768883.html

2009年1月13日 星期二

Integration with Flex Builder 3 plug-in and MyEclipse

這兩天快被flex環境的架設搞瘋了,不過問題終於解決了…

首先,有幾個東西要下載
1.Flex Builder 3 plug-in,要先註冊
2.MyEclipse or Eclipse

◎自動安裝
先裝Eclipse,再安裝Flex 3 plug-in
安裝Flex 3 plug-in的時候,會要求你找到Eclipse的安裝目錄,
這個目錄下要包含"Configuration"的目錄,
安裝完後,就完成了。

◎手動安裝
先裝Eclipse,再安裝Flex 3 plug-in
由Eclipse中新增Flex 3 plug-in,
選單 Help / Software Update / Add Software / Local,
選Flex 3 plug-in的安裝目錄,
[安裝目錄]\Adobe\Flex Builder 3 Plug-in\com.adobe.flexbuilder.update.site
完成安裝,Eclipse會自動新增一個Flex Builder的專案類型。

2008年11月12日 星期三

Apache HTTP Server 與 Tomcat 整合 (方法二)

其實tomcat 5.x版及apache2.x版之後,都已經內建connector了
根據文件的說法,是ready to use的.....


步驟如下:
1.安裝tomcat及apache
2.打開{apache安裝目錄}\conf\httpd.conf,依底下兩個步驟做設定。完成後,重新啟動apache,使設定生效。
1)在設定載入模組的地方:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

2)在設定模組的地方加入
< IfModule mod_proxy.c >
    ProxyRequests On
    ProxyVia On
    < Proxy /* > ←指所有的網址都適用
      Order deny,allow
      Deny from all
      Allow from localhost
    < /Proxy >
    ProxyPass /img ! ←這表示/img目錄的連結不重導
    ProxyPass /first http://localhost:8080/another ←/first開頭的連結對應到小貓咪的/another這個context
    ProxyPassReverse / http://localhost:8080/
< /IfModule >

3.基本上,這樣已經完成了。

2008年11月11日 星期二

Apache HTTP Server 與 Tomcat 整合 (方法一)

Tomcat 6.0.x 與Apache 2.2.x 整合的步驟...

(假設apache 的port是80, tomcat的port是8080)
1. 下載 mod_jk-1.2.27-httpd-2.2.10.so (此版是給apache 2.2.x版用的)

2. 將mod_jk-1.2.27-httpd-2.2.10.so改名為 mod_jk.so

3. 將mod_jk.so複製到< apache root >\Apache2.2\modules

4. Apache中的httpd.conf加入:
在 # Dynamic Shared Object (DSO) Support這個區塊下加入
LoadModule jk_module modules/mod_jk.so

在 # Virtual hosts這個區塊下加入
< Virtualhost *:80 >
JkMount /*/*.jsp ajp13
JkMount /servlet/* ajp13
< /Virtualhost >

5. 在Tomcat的webapps下的目錄,
建立一個jsp的目錄,
在這個目錄裡面的所有*.jsp
都會被掛到apache下
例如:建立一個hello.jsp做測試

6. 先執行Apache server, 再執行Tomcat server

7. 在IE執行http://localhost/jsp/hello.jsp
看是否成功!