2014-04-10 19 views
5

Chúng tôi đang sử dụng thuộc tính khai báo mùa xuân giao dịch cho toàn vẹn cơ sở dữ liệu. Một số mã của chúng tôi gọi webservice mà làm bó của các chất liệu trong sharepoint. Vấn đề là khi các dịch vụ web mất nhiều thời gian hơn, người dùng sẽ bị bế tắc từ mùa xuân đang nắm giữ phần phụ trợ.Mùa xuân :: Nếu một ngã ba một chủ đề mới sẽ được thực thi trong giao dịch của mùa xuân

Nếu tôi tạo một chuỗi mới bên trong một hàm có thuộc tính khai báo giao dịch mùa xuân sẽ bị bỏ qua từ mùa xuân?

[Transaction(TransactionPropagation.Required, ReadOnly = false)] 
    public void UploadPDFManual(/*parameters*/) 
    { 
     //DO some data base related things 

     if (revisionPDFBytes != null) 
     { 
      //my sharepoint call which calls webservice 
      Task.Factory.StartNew(() => DocumentRepositoryUtil.CreateSharepointDocument(docInfo)); // I draw a new thread from ASPNET worker thread pool. 
     } 
    } 

Bất kỳ tùy chọn nào khác tôi nên đi?

Trả lời

0

Bạn không cần thực hiện trong giao dịch. Giao dịch làm cho một cơ sở dữ liệu lưu một đối tượng đúng cách. Đó là nó. Tất cả các công cụ khác phải được thực hiện sau khi giao dịch được thực hiện. Trong Java, bạn có thể làm cho nó với đồng bộ hóa giao dịch của Spring hoặc JMS. Hãy xem câu trả lời được chấp nhận over here.

More useful info dành riêng cho .NET (xem 17.8).

+0

tôi thích ý tưởng tách những gì không nên có trong giao dịch –

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