2010-03-12 26 views
13

Tôi đang tìm một gợi ý làm thế nào để làm cho tomcat CI sẵn sàng hoặc một container chứa/thùng chứa ứng dụng thường đứng redeploys như chúng xảy ra khi sử dụng hudson ci.Tomcat 6 đã sẵn sàng để tích hợp liên tục hay làm thế nào để nó hoạt động?

Tôi đã trải nghiệm Tomcat 6 không khai thác đúng các ứng dụng web, để lại các lớp học trong jvm.

Ví dụ tôi theo dõi tomcat 6 với VisualVM: trên lớp học bắt đầu năm 2000, trên triển khai các ứng dụng 3000 sau redeploy 4000 và triển khai lại 5000 lớp và vân vân - dẫn đến tai nạn, rò rỉ bộ nhớ ...

hy vọng rồi người ta có một gợi ý về tomcat và tích hợp liên tục hoặc các máy chủ ứng dụng khác.

+0

Tôi cũng sẽ * yêu * để xem câu trả lời cho điều này. Chúng tôi đã gặp vấn đề tương tự với lỗi bộ nhớ PermGen, v.v. với các thiết bị tự động CI của chúng tôi tới Tomcat 6. – Pete

+0

Chạy phiên bản tomcat mới nhất? Nó có nhiều lỗi đăng nhập như những gì không được làm sạch đúng cách khi tải lại ngữ cảnh. Nếu bạn sử dụng mysql, hãy lấy connector/j 5.1.12, vì nó sửa lỗi rò rỉ luồng, gây ra rò rỉ tải lại rất lớn trong tomcat. – nos

+0

Chúng tôi sử dụng các ứng dụng nhỏ không có mysql hoặc trình kết nối. Ứng dụng ví dụ nhỏ từ mùa xuân, đơn giản xin chào thế giới jsp aps và như vậy. – jpse

Trả lời

7

Cập nhật: Tôi đã thực hiện một số xét nghiệm với một ứng dụng web phức tạp vừa phải sử dụng Spring, Hibernate, GWT, C3P0 và HSQLDB.

Cổ phiếu Tomcat 6.0.24 hoạt động tốt, miễn là bạn sử dụng trình biên dịch máy khách. Nó hoạt động trên mười redeploys, trong khi trình biên dịch máy chủ phá vỡ trên thứ tư. Tôi đề nghị bạn thử cờ -client.

Cố gắng gỡ lỗi việc sử dụng trình biên dịch máy chủ không có hiệu quả, vì MAT Eclipse cho thấy không có rễ GC cho trình nạp lớp, và chúng vẫn được giữ lại. Một lỗi oft-tham chiếu, PermHeap bloat in and only in server VM đã được báo cáo cố định trong Java 6 update 16, nhưng các xét nghiệm của tôi thất bại với Java 6 update 16.


Tomcat đã được kiểm tra và kiểm tra lại các vấn đề về bộ nhớ như vậy, và khá thường xuyên các ứng dụng bị đổ lỗi. Không có điều đó không phải là để nói rằng nó nhất thiết phải khó có một rò rỉ gen như vậy.

Có hai khả năng ở đây:


Nếu bạn thực sự muốn gỡ lỗi vấn đề này và chắc chắn rằng đó là lỗi của Tomcat, bạn có thể cho bạn những Eclipse memory analyser. Họ có một tốt blog post explaining how to debug PermGen problems.

+0

Xin chào, bạn đã nói GCC bị hỏng ... Bạn có ý nghĩa gì về điều đó. Có thử nghiệm nào không? dù sao, có thực sự ứng dụng thường gây ra sự cố, đó là lý do tại sao chúng tôi sử dụng các ứng dụng mẫu như chúng sử dụng hàng triệu lần. Tính năng phát hiện rò rỉ mới không may là không giải quyết được vấn đề nhưng là một bước đi đúng hướng và giúp bàn tay hiểu những gì đang xảy ra ... – jpse

+0

Vâng, tham khảo GCC khá mờ đục, xin lỗi. Điều tôi muốn nói là chúng tôi là nhà phát triển có xu hướng đổ lỗi cho các thành phần khác - máy chủ ứng dụng, hệ điều hành, tia vũ trụ :-) cho các vấn đề mà chúng tôi không thể giải thích và. Tôi đã làm điều này quá nhiều lần, và hầu như luôn luôn tìm thấy lỗi trong mã của tôi. –

+0

@Robert cảm ơn bạn đã liên kết nhật thực – jpse

1

Tôi luôn luôn muốn có biện pháp quyết liệt để đảm bảo rằng mọi thứ đều sạch sẽ và trong tình trạng hoàn toàn tái sản xuất khi bắt đầu

1) giết tomcat

2) xóa nó khỏi đĩa

3) giải nén phiên bản sạch

4) ghi đè các tệp được định cấu hình được cá nhân hóa của bạn

5) khởi động lại tomcat

6) triển khai ứng dụng của bạn

+0

Cảm ơn, chúng tôi đã sử dụng tomcat sạch mới để thử nghiệm, không áp dụng ứng dụng, không chính xác ... – jpse

+0

Trong khi đây là cách tiếp cận "an toàn nhất", nó cũng sẽ phức tạp hơn nhiều để thiết lập, đặc biệt nếu bạn có nhiều máy chủ Tomcat udpate bởi CI (dev, alpha, preproduction, vv). Tại sao bạn cảm thấy các biện pháp quyết liệt này là cần thiết (đặc biệt là cài đặt lại Tomcat)? – sleske

-1

Hãy xem Apache Cactus - đó là khuôn khổ cho thử nghiệm đơn vị trong máy chủ trong vùng chứa. Nó hoạt động khá nhiều với bất kỳ thùng chứa servlet nào.

+0

Trong khi Apache Cactus thú vị, tôi không thấy điều này liên quan đến câu hỏi, đó là về các vấn đề gây ra bởi việc tái triển khai thường xuyên. – sleske

Các vấn đề liên quan