Geeks With Blogs
Scott Van Vliet Once a Developer, Always a Developer

As part of our configuration management process with our offshore team, we often have to recreate our database schema in Oracle by dropping the schema owner and recreating that user as part of the create/import scripts delivered with a build. However, when trying to perform this task in our onshore Development, QA or UAT environments we are faced with an issue where the user could not be dropped due to the fact that said user was currently connected:

DROP USER <user_to_drop> CASCADE
*
ERROR at line 1:
ORA-01940: cannot drop a user that is currently connected

However, when checking the V$SESSION system table, the user was not listed as being connected or having an active session with the database. Perplexed, we looked around at some other clues, and determined that while the user did not have an active session with the database, its connection was still valid and pooled by the ASP.NET Web process. Thus, we recycled the AppPool in which the application was hosted and – viola! The drop succeeded.

We've now automated this process and recycle the AppPool programmatically. Below is the Web service used to list the available AppPools and individually recycle them.

using System;

using System.Web;

using System.Web.Services;

using System.Web.Services.Protocols;

using System.DirectoryServices;

using System.Collections.Generic;

 

[WebService(Namespace = "http://tempuri.org")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class AppServerService : System.Web.Services.WebService

{

    public AppServerService ()

    {

    }

 

    private const string AppPoolDirectoryEntryPath = "IIS://localhost/W3SVC/AppPools";

 

    [WebMethod]

    public List<string> GetAppPoolNames()

    {

        List<string> appPoolList = new List<string>();

 

        using (DirectoryEntry appPoolEntry =

                 new DirectoryEntry(AppPoolDirectoryEntryPath))

        {

            foreach (DirectoryEntry appPool in appPoolEntry.Children)

            {

                appPoolList.Add(appPool.Name);

               

                appPool.Close();

                appPool.Dispose();

            }

        }

 

        return appPoolList;

    }

 

    [WebMethod]

    public AppPoolRestartResponse RecycleAppPool(string appPoolName)

    {

        if (appPoolName == null)

        {

            throw new ArgumentNullException("appPoolName");

        }

 

        AppPoolRestartResponse response = new AppPoolRestartResponse();

        using (DirectoryEntry appPool = new DirectoryEntry(

                 String.Format("{0}/{1}", AppPoolDirectoryEntryPath, appPoolName)))

        {

            try

            {

                appPool.Invoke("Recycle");

 

                response.Successful = true;

                response.Message = String.Format(

                  "Application Pool \"{0}\" was recycled succesfully at {1:HH:mm:ss}.",

                  appPool.Name, DateTime.Now);

            }

            catch (Exception e)

            {

                response.Successful = true;

                response.Message = String.Format(

                  "Application Pool \"{0}\" failed to recycle: \"{1}\".",

                  appPool.Name, e.Message);

            }

        }

 

        return response;

    }

 

    /// <summary>

    ///

    /// </summary>

    public class AppPoolRestartResponse

    {

        private bool _successful;

        private string _message;

 

        public bool Successful

        {

            get { return _successful; }

            set { _successful = value; }

        }

 

        public string Message

        {

            get { return _message; }

            set { _message = value; }

        }    

    }

   

}

Note that in order for this Web service to work correctly, you must be authenticated to the Web service as an local administrator of the machine, or enable impersonation in Web.config for a user with the appropriate privelleges.

Posted on Tuesday, January 23, 2007 10:01 PM ASP.NET , Oracle | Back to top


Comments on this post: How to Drop an Oracle Schema / User locked by ASP.NET

# re: How to Drop an Oracle Schema / User locked by ASP.NET
Requesting Gravatar...
Thank you so much for sharing this wonderful idea. This is a useful information as I was trying to figure out how the program works. -
Marla Ahlgrimm
Left by Lalaine Peter on Mar 19, 2015 10:15 PM

# re: How to Drop an Oracle Schema / User locked by ASP.NET
Requesting Gravatar...
Wow, cool post. I’d like to write like this too – taking time and real hard work to make a great article…
pha thai bang thuoc
Left by Susu on Jun 01, 2017 9:17 PM

# re: How to Drop an Oracle Schema / User locked by ASP.NET
Requesting Gravatar...
Câu hỏi về chi phí phá thai luôn được các chị em quan tâm, vậy phá thai hết bao nhiêu tiền?
Left by suga on Jun 21, 2017 7:24 PM

# re: How to Drop an Oracle Schema / User locked by ASP.NET
Requesting Gravatar...
Nhiều chị em còn có thắc về cách phá thai 1 tháng tuổi. Hãy đến với phòng khám phụ khoa thái hà chị em nhé!
Left by suga on Jun 21, 2017 7:26 PM

# re: How to Drop an Oracle Schema / User locked by ASP.NET
Requesting Gravatar...
Bỏ thai bằng thuốc nhiều rất trầm trọng đến sức khỏe.

Sử dụng thuốc phá thai đã khiến một nàng sống tại thôn Văn Cao, tỉnh Thanh Hải, Trung Quốc đã tử vong dưới đây ví như tiến hành 7 lần uống thuốc phá thai trong 12 tháng bởi chồng của người phụ nữ một mực sở hữu ý định vợ cần phải đẻ con trai theo ý muốn.

Đôi vợ chồng này đã có một đứa bé gái 4 tuổi, cùng gia đình người chồng luôn mong đã dự kiến có 1 cu cậu để nối dõi tông con đường cần phải đã khiến người vợ cần phải phá thai nhiều lần trong thời kì ngắn khiến cơ thể của cô đã bị tác động nặng nề. lây lan thông tỉnh Hồ Bắc đưa tin bạn trên đã kiểm tra giới tính của con bằng cách thức tiêu dùng tia X, cộng sở hữu nếu như nhìn ra đó là con gái thì chồng cô đã bắt cô chấm dứt thai kỳ .



Sau khi 7 lần sở hữu chửa đều là bé nữ, người chồng đã chọn lọc chia tay người vợ và bồi thường 26.000 nhân dân tệ tương đương 180000000 đồng nhằm điều trị những hậu quả sau nhiều lần chấm dứt thai nghén . tuy nhiên thai phụ này rồi sau ấy đã không qua khỏi cơn nguy kịch.



Chuyện xem trước trai gái trước nếu như sinh tại Trung Quốc là việc gây ra bất hợp pháp, vài bác sỹ trong lĩnh vực này đều không có giấy phép quan hệ bên cạnh đó là do nhu cầu lớn trong văn hóa Trung Quốc đó là trọng anh em khinh nữ cần nhiều nơi vẫn tùy nhân tiện thực hành .



(Hình ảnh minh họa)

Chấm dứt thai nghén bằng thuốc nguy hại như thế nào?

Mất cân bằng cách thức sử dụng nội tiết tố

chấm dứt thai nghén bằng phương pháp dùng bất nhắc hướng kết thúc công đoạn thai kỳ nào cũng có thể gây khi nội tiết tố bên trong cơ thể bỗng dựng mắc rối loạn cùng đương nhiên điều này với nguy cơ gây sự mất cân đối nội tiết tố trong cơ thể, với thể gây nên tác động bộ phận sinh sản khoảng 3-6 tháng.

Vết thương cổ tử cung

Trong tử cung với nguy cơ có các mô mềm trên thành cổ tử cung. Chính vì thế nếu như chị em thực thi thực hành 1 cuộc kết thúc thai kỳ có khả năng tác động xấu trở lại thành cổ tử cung cùng có với nguy cơ gây ra 1 số vết sẹo, gây những lần với bầu dưới đây trở lên khó khăn hơn vì trứng mang khả năng sẽ không gây ra tổ đúng nơi.



Thai chết lưu

Bào thai chết lưu là hiện tượng thai bị mắc chết tuy nhiên vẫn nằm lại trong tử cung của người mẹ. Điều ko tốt đối với người bị mắc thai lưu là ối bị mắc vỡ sớm khi chưa có hiện tượng sảy hoặc chuyển dạ.



tới nơi màng ối rách, vi khuẩn sẽ tới buồng ối và dạ con, gây lây khuẩn , tạo điều kiện nếu vi rút phát triển lan truyền đi tới buồng tử cung, cổ tử cung, âm đạo và một vài cơ quan phụ cận , gây trường hợp nhiễm trùng cực kỳ nặng.

ác hại đến tính mạng

Chuyện bỏ thai sở hữu thể khiến một số chị gái mắc băng huyết, 1 số bộ phận sinh sản bị mắc tổn thương nặng nề, thai chết lưu, nhiễm trùng… vài điều này đều đe dọa quay lại tính mạng của 1 số bạn nữ .

Một vàii y bác sĩ đều khuyên rằng các nàng tuyệt đối không được tùy tiện chấm dứt thai kỳ ví như không cần phải là một số tình huống bắt buộc như: thai ngoài tử cung, thai chết lưu, dị tật thai nhi,…Nếu bắt buộc cần chấm dứt thai nghén thì cần phải được thực hiện ở các địa chỉ phá thai đảm bảo cộng tuyệt đối không đựng tự tiện sử dụng một vài giải pháp chấm dứt thai kỳ trên nhà.
Left by phong kham on Jul 21, 2017 9:25 PM

# re: How to Drop an Oracle Schema / User locked by ASP.NET
Requesting Gravatar...
http://phongkhamthaiha.com/
Left by phong kham on Sep 28, 2017 12:06 AM

# re: How to Drop an Oracle Schema / User locked by ASP.NET
Requesting Gravatar...
http://phongkhamthaiha.com/
phong kham
Left by phong kham thai ha on Sep 28, 2017 12:08 AM

# re: How to Drop an Oracle Schema / User locked by ASP.NET
Requesting Gravatar...
đánh giá phòng khám đa khoa đại đông có uy tín không và thông tin về danh sách địa chỉ phong kham nam khoa chất lượng nhất tại tphcm
Left by phong kham dai dong on Oct 03, 2017 9:30 PM

Your comment:
 (will show your gravatar)


Copyright © svanvliet | Powered by: GeeksWithBlogs.net