2011-08-10 31 views
5

Tôi có một hộp Windows Server 2008 R2 64 bit mới được xây dựng mà tôi đã cài đặt chuẩn Coldfusion 9 64 bit. Tôi đã nâng cấp và cập nhật nó lên phiên bản CF mới nhất. Tôi cũng đã cài đặt ứng dụng Oracle 11g (11.1.0.7.0) 64 bit trên hộp. Tôi đã tạo một DSN hệ thống bằng cách sử dụng Quản trị viên nguồn dữ liệu ODBC 64 bit trong Windows và có thể thử nghiệm thành công kết nối của nguồn dữ liệu.Coldfusion 9.0.1 Chuẩn 64bit và Oracle 11g 64bit kết quả kết nối ODBC trong "kiến trúc không khớp"

Tất cả những cài đặt diễn ra suôn sẻ, tuy nhiên, khi tôi đã đi để thêm một nguồn dữ liệu trong Administrator Coldfusion tôi nhận được lỗi:

Connection verification failed for data source: myDatabaseName

java.sql.SQLException: [Macromedia][SequeLink JDBC Driver][ODBC Socket]internal error: The specified DSN contains an architecture mismatch between the Driver and Application The root cause was that: java.sql.SQLException: [Macromedia][SequeLink JDBC Driver][ODBC Socket]internal error: The specified DSN contains an architecture mismatch between the Driver and Application

Tôi gặp một thời gian khó khăn để hiểu chính xác nơi kiến ​​trúc này không phù hợp đang đến kể từ khi hộp là hoàn toàn 64-bit. Tôi thấy trong khi xem xét tất cả các quy trình đang chạy, một số quy trình CF có liên quan đang chạy trong 32-bit (các quy trình liên quan đến Verity, SOLR và CFDotNetSVC). Tôi không chắc chắn nếu những người có thể gây ra vấn đề này nhưng tôi đang ở một mất mát để giải thích được sự không phù hợp này sẽ đến từ khác.

Bất kỳ ai có ý tưởng nào?

Trả lời

4

Tôi tin rằng bạn cần hoặc là step down to the 32-bit drivers hoặc sử dụng trình điều khiển JDBC nguyên bản để kết nối với Oracle thành công. Đề xuất của tôi là đi theo tuyến đường JDBC và kết nối trực tiếp thông qua trình điều khiển Oracle JDBC nguyên gốc bằng cách sử dụng lựa chọn "khác" trên màn hình Datasource. Bạn sẽ nhận được hiệu suất tốt hơn theo cách đó và có quyền kiểm soát nhiều hơn đối với kết nối của mình thông qua ColdFusion.

Connecting to Oracle thông tin trong ColdFusion Livedocs.

+2

Dan, cảm ơn phản hồi. Thật không may, chúng tôi chỉ được cấp phép cho CF Standard mà không bao gồm trình điều khiển JDBC Oracle. –

+2

Nếu bạn có thể đặt tay lên trình điều khiển JDBC, bạn có thể tự cài đặt và sử dụng nó. Bạn có thể sử dụng bất kỳ trình điều khiển JDBC nào được cài đặt trong JRE của Coldfusion của bạn. –

+0

Cảm ơn một tấn cho lời khuyên của bạn Dan, tôi đã không nhận ra bạn có thể sử dụng bất kỳ trình điều khiển JDBC như thế. –

7

Sử dụng lời khuyên của Dan Tôi túm lấy một điều khiển JDBC từ Oracle ở đây:

http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-111060-084321.html

sau đó tôi chuyển JAR (ojdbc6.jar trong trường hợp của tôi) và thêm nó vào Coldfusion Lớp con đường của tôi.

Xác định các thiết lập chính xác cho việc sử dụng nguồn dữ liệu để Coldfusion là hơi khó nhưng đây là các thiết lập tôi đã kết thúc đi với:

JDBC URL: jdbc:oracle:thin:@//dbsrv.mydomain.com:1521/myDB.world 
Driver Class: oracle.jdbc.driver.OracleDriver 
Driver Name: Oracle Thin Driver 

Sau đó, tên người dùng và mật khẩu cho DB.

Chắc chắn nó hoạt động như một sự quyến rũ.

Dan, tôi muốn cung cấp cho bạn một dấu kiểm vì bạn chắc chắn đưa tôi đi đúng hướng, nhưng tôi chỉ có thể đánh dấu đúng.

+0

Chỉ cần đánh dấu câu trả lời của tôi ở trên là câu trả lời chính xác và bạn đã hoàn tất. Vui vì bạn đã làm việc đó :) –

+1

+1, theo dõi như thế này luôn hữu ích – John

+0

Tôi đã làm mọi thứ trên máy chủ mới của chúng tôi ở chế độ dùng thử CF 11. Khi tôi áp dụng giấy phép cho tiêu chuẩn, trình điều khiển JDBC Macromedia ngừng hoạt động. Điều này vừa cứu tôi rất nhiều đau đầu. – Lawson

1

tôi tìm thấy một cách khác để làm điều này

cài đặt các trình điều khiển ODBC cho 64bit và 32bit (theo thứ tự đó) trên hệ điều hành 64bit win2008 bạn

sau đó tạo DSN trên cả hai thư mục System32 và thư mục SysWow64 bằng cách chạy odbc32ad32.exe

đảm bảo TNSNAMES của bạn được thiết lập tốt trong thư mục mạng/quản trị tương ứng (nếu bạn sử dụng TNSNAMES để duy trì SIDS của bạn)

bây giờ trên quản trị CF bạn creaet một nguồn ODBC mới với a Socket và tên aODBC. trang tiếp theo sẽ hiển thị cho bạn một danh sách thả xuống của tất cả DSN tồn tại trong thiết lập DSN 64 bit.Khi bạn đi và thử nghiệm nó trong CF, nó sẽ lạ sử dụng cấu hình của thiết lập DSN 32bit cho validationb

voila .... kết nối của bạn sẽ hoạt động. Không lo lắng về những lỗi kiến ​​trúc đó, vv

0

Chúng tôi cần thiết lập kết nối ODBC 64 bit cho máy chủ Coldfusion 11 để truy vấn phiên bản SQL Server 2012 trên Windows 2008 R2 Server. Các kết nối ODBC sẽ hiển thị nhưng sẽ không bao giờ hoạt động. Chúng tôi đã nhận được rất nhiều thông báo khác nhau khi xác minh như "cần kết nối SSL để làm việc" và cũng có các thông báo hết thời gian vì nó đang gặp sự cố khi đăng nhập vào SQL Server.

Tôi tình cờ gặp bài đăng này và chúng tôi quyết định theo dõi thiết lập kết nối ODBC 64 bit và sau đó ghi đè lên chúng một cách hiệu quả - bảo toàn tên bằng ODBC 32 bit. Cảm ơn bạn một lần nữa các nhà phát triển đồng nghiệp, đặc biệt là Souzam! hướng dẫn của tôi là dưới đây:


Đối với Windows 2008R2 Server bạn phải ngụy trang cấu hình ổ cắm 64bit ODBC cho 32 bit để cho chúng xuất hiện trong CF quản lý như datasources (bug rõ ràng trong CF 11):

  1. Tạo kết nối ODBC 64 bit qua ứng dụng ODBC 2008 R2, tuân theo quy ước đặt tên cho phép bạn gọi lại trong cấu hình 32 bit.
  2. Định cấu hình kết nối ODBC 32 bit trong SYSWOW64 (C: \ Windows \ SysWOW64) bằng cách sử dụng odbcad32.exe sử dụng tên 64 bit trước đó trong BướC# 1.
  3. Tạo nguồn dữ liệu trong Quản trị viên CF vì những nguồn này sẽ xuất hiện trong menu thả xuống khi tạo kết nối Loại ổ cắm ODBC.
Các vấn đề liên quan