Packages stored in Catalog Failing When Ran From Agent

The production server was recently rebooted and now all the packages that are stored in the catalog are failing. All of them are encrypted and I know that is an issue but they have been working right up until the reboot.
I went and recreated the job step by calling the package from the file system. It runs from the file system and fails from the catalog. When I was setting up the file system run the process asked me for the package password. I don't get asked when I set
it up to run against the catalog. I'm not seeing anywhere where I can pass the catalog the package password. As a matter of fact there are next to no properties to change or play with to troubleshoot the problem.
I'm certain this is some sort of encryption or permissions issue, I'm just not sure what to change to make it work again. Any input would be appreciated.

Probably the account running the packagres from catalog (e.g. via the Agent) has no rights.
Typically resolved by setting the job to run via a proxy account that happens to have just enough rights.
http://www.mssqltips.com/sqlservertip/2163/running-a-ssis-package-from-sql-server-agent-using-a-proxy-account/
Arthur My Blog

Similar Messages

  • SRM validate the Catalog Item when copying from old templates

    Do SRM validate the Catalog Item when copying from old templates and previous shopping carts? Is this standard functionality?
    Thanks,
    Rajan

    Continuation to my previous post:
    My findings based on the analysis I did. Might help people who are looking for similar info.
    As Jason mentioned, the Subroutine name is CATALOG_CONTENT_VALIDATE_GET
    This is under package BBP_SC --> Function Group: BBP_SC_APP
    After making a webservice call to get catalog details, the mapping is done as below.
      IF sy-subrc EQ 0.
        READ TABLE lt_enriched_item INDEX 1.
        IF sy-subrc EQ 0.
          ls_item_validate-price      = lt_enriched_item-price.
          ls_item_validate-currency   = lt_enriched_item-currency.
          ls_item_validate-price_unit = lt_enriched_item-price_unit.
          ls_item_validate-deliv_date = lt_enriched_item-deliv_date.
          ls_item_validate-leadtime   = lt_enriched_item-leadtime.
          ls_item_validate-unit       = lt_enriched_item-unit.
        ELSE.
          lv_validate_item_exception = gc_yes.
        ENDIF.
      ELSE.
        lv_validate_item_exception = gc_yes.
      ENDIF.
    If you go one level deeper into subroutine  PERFORM sc_itm_copy_to_basket, you can see that following validations are performed.
    If EITHER price, currency or price unit changes, we get the message u201C&: Price changed due to catalog validationu201D
    If UOM changes, we get the message u201C&: Unit of measure changed in catalog; item not transferredu201D
    When Delivery date or lead time changes, no message is raised but the new values are copied.
    In a nut shell, the fields that are considered for validation are Price, Currency, Price Unit, UOM, Delivery date, Lead Time.
    Thanks,
    Seyed

  • Unit test runs perfectly fine with NUnit but fails when run from TestExplorer

    Hello all,
    I have a TestProject, Harmony.Tests. In there, I have a method AddApplicationEvent()
    which calls another method Send(InvokeRequestMessage requestMessage) which calls a webservice (OperationHandlerBrokerWebService). 
    The code snippet looks like this. This is not the complete code but a part where we are calling the web service. It fails on the underlined Italic line of code.
    OperationHandlerBrokerWebService brokerService = new OperationHandlerBrokerWebService();
    brokerService.UseDefaultCredentials = true;
    brokerService.Url = address;
    brokerService.Timeout = timeoutInMilliseconds;
    byte[] serializedResponseMessage = brokerService.InvokeOperationHandler(serializedRequestMessage);
    The same test works and passed fine when I ran it with NUnit, but failed with following exception when I tried to run it from TestExplorer. 
    Test Name: AddApplicationEvent
    Test FullName: N4S.Harmony.Tests.CaseManagement.HarmonyFacadeTests.AddApplicationEvent
    Test Source: d:\TFS\TMW\Dev\TMWOnline\Harmony\N4S.Harmony.Tests\CaseManagement\HarmonyFacadeTests.cs : line 665
    Test Outcome: Failed
    Test Duration: 0:00:00.296
    Result Message:
    SetUp : Message returned System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: Invalid token for impersonation - it cannot be duplicated.
    at System.Security.Principal.WindowsIdentity.CreateFromToken(IntPtr userToken)
    at System.Security.Principal.WindowsIdentity..ctor(SerializationInfo info)
    at System.Security.Principal.WindowsIdentity..ctor(SerializationInfo info, StreamingContext context)
    --- End of inner exception stack trace ---
    at System.RuntimeMethodHandle._SerializationInvoke(Object target, SignatureStruct& declaringTypeSig, SerializationInfo info, StreamingContext context)
    at System.Reflection.RuntimeConstructorInfo.SerializationInvoke(Object target, SerializationInfo info, StreamingContext context)
    at System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Object obj, SerializationInfo info, StreamingContext context)
    at System.Runtime.Serialization.ObjectManager.FixupSpecialObject(ObjectHolder holder)
    at System.Runtime.Serialization.ObjectManager.DoFixups()
    at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
    at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
    at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
    at N4S.Forms.OperationHandlerBroker.AMessage.DeserializeMessage(Byte[] serializedMessage)
    at N4S.Forms.OperationHandlerBroker.WebServiceServer.BrokerService.InvokeOperationHandler(Byte[] serializedInvokeRequestMessage)
    --- End of inner exception stack trace ---
    expected: <0>
    but was: <1>
    Result StackTrace:
    at N4S.Harmony.Tests.TestHelper.InvokeOperation(OperationHandler handler, OperationHandlerInput input, Boolean expectedToWork) in d:\TFS\TMW\Dev\TMWOnline\Harmony\N4S.Harmony.Tests\TestHelper.cs:line 136
    at N4S.Harmony.Tests.TestHelper.LoginAsUser(String username, String password) in d:\TFS\TMW\Dev\TMWOnline\Harmony\N4S.Harmony.Tests\TestHelper.cs:line 394
    at N4S.Harmony.Tests.TestHelper.Login(TestUserName requestedUser) in d:\TFS\TMW\Dev\TMWOnline\Harmony\N4S.Harmony.Tests\TestHelper.cs:line 377
    at N4S.Harmony.Tests.TestHelper.LoginAsAdvisor() in d:\TFS\TMW\Dev\TMWOnline\Harmony\N4S.Harmony.Tests\TestHelper.cs:line 230
    at N4S.Harmony.Tests.CaseManagement.HarmonyFacadeTests.Login() in d:\TFS\TMW\Dev\TMWOnline\Harmony\N4S.Harmony.Tests\CaseManagement\HarmonyFacadeTests.cs:line 76
    at N4S.Harmony.Tests.CaseManagement.HarmonyFacadeTests.SetupTest() in d:\TFS\TMW\Dev\TMWOnline\Harmony\N4S.Harmony.Tests\CaseManagement\HarmonyFacadeTests.cs:line 67
    I am not sure what causing the issue. I checked the Credentials, Windows Identity during both the test run and there is no difference. Please advise !!
    Thanks,
    Deepak

    Hi Tina,
    Thanks for your reply. 
    I do have NUnit adapter installed. I even noticed that the test runs fine with NUnit GUI and also if I run it through Resharper Test Explorer window. 
    As you can see in the image above the same test is passed when I ran it from Resharper Unit Test Explorer window but fails when I ran it from Test Explorer window. I also captured the information on fiddler. 
    There was a significant difference in the Header Content length. Also under the User-Agent property the protocol versions are different. 
    Not sure why VSTest ExecutionEngine is picking a different version.
    The UnitTest in question is calling a webservice method which in turn calls a method from another referenced project. 
    Web Service class
    using System;
    using System.Web.Services;
    using N4S.Forms.OperationHandlerBroker.Server;
    using NLog;
    namespace N4S.Forms.OperationHandlerBroker.WebServiceServer
    /// <summary>
    /// The operaton-handler broker service.
    /// </summary>
    [WebService(Description = "The N4S Forms Operation-Handler Broker Web-Service.", Name = "OperationHandlerBrokerWebService",
    Namespace = "N4S.Forms.OperationHandlerBroker.WebServiceServer")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class BrokerService : WebService
    { /// <summary>
    /// Calls <see cref="HandleRequest"/>. Updates performance-counters.
    /// </summary>
    /// <param name="serializedInvokeRequestMessage">the binary-serialized <see cref="InvokeRequestMessage"/></param>
    /// <returns>the binary-serialized response message</returns>
    [WebMethod(BufferResponse = true, CacheDuration = 0, Description = "Invokes the requested operation-handler and returns a binary-serialized response-message.", EnableSession = false)]
    public byte[] InvokeOperationHandler(byte[] serializedInvokeRequestMessage)
    logger.Trace(Strings.TraceMethodEntered);
    PerformanceMonitor.RecordRequestStarted();
    InvokeRequestMessage requestMessage = (InvokeRequestMessage) AMessage.DeserializeMessage(serializedInvokeRequestMessage);
    InvokeResponseMessage responseMessage;
    try
    responseMessage = HandleRequest(requestMessage);
    PerformanceMonitor.RecordSuccessfulRequest();
    catch (Exception)
    PerformanceMonitor.RecordFailedRequest();
    throw;
    finally
    PerformanceMonitor.RecordRequestEnded();
    logger.Trace(Strings.TraceMethodExiting);
    return AMessage.SerializeMessage(responseMessage);
    UnitTest snippet
    OperationHandlerBrokerWebService brokerService = new OperationHandlerBrokerWebService();
    brokerService.UseDefaultCredentials = true;
    byte[] serializedResponseMessage = brokerService.InvokeOperationHandler(serializedRequestMessage);
    Please advise.
    Thanks,
    Deepak

  • Opening Excel Workbook Fails when run from Scheduled Task on Windows Server 2008 Rw

    Hi,
    I have a little vbs script that instantiates the Excel.Application object and then opens a work book to perform some tasks on it. The script runs fine when run from the command line. When I attempt to run it as a scheduled task (it is supposed to update
    data that is pulled from a SQL Server at regular intervals), it fails with the following error:
    Microsoft Office Excel cannot access the file 'c:\test\SampleWorkbook.xlsm'. There are several possible reasons: .....
    The file does exist. The path reported in the error is correct. The account under which the task is running is the same account I use to run it from the command line. User Account Control is not enabled, and the task is set up to run with highest privileges.
    When I run the same script through the Task Scheduler from a Windows Server 2003 machine, it works without issue.
    I was just wondering if somebody on this forum has run into a similar issue in connection with Windows Server 2008 R2 and figured out what the magic trick is to make it work. I'm sure it is rights related, but I haven't quite figured out what which rights
    are missing.
    Thanks in advance for any advice you may have.

    This is truly killing me ... trying to get it working on Windows Server 2012 without success.
    I desperately need to automate running Excel macros in a "headless" environment, that is non-interactive, non-GUI, etc.
    I can get it to work using Excel.Application COM, either via VBScript or Powershell, successfully on many other Windows systems  in our environment - Windows Server 2008 R2, Windows 7 (32-bit), etc.,  -BUT-
    The two servers we built out for running our automation process are Windows Server 2012 (SE) - and it just refuses to run on the 2012 servers - it gives the messages below from VBScript and PowerShell, respectively- 
    I have tried uninstalling and re-installing several different versions of Microsoft Excel (2007 Standard, 2010 Standard, 2010 Professional Plus, 32-bit vs. 64-bit, etc.), but it makes no difference.
    Would be extremely grateful if any one out there has had any success in running Excel automation on Server 2012 in a non-interactive environment that they could share.
    ( I have tried adding the "%windir%\syswow64\config\systemprofile\desktop"
    folder, which did fix the issue for me when testing on Windows Server 2008 R2, but sadly did not resolve it on Windows Server 2012 )
    [VBScript error msg]
    Z:\TestExcelMacro.vbs(35, 1) Microsoft Office Excel: Microsoft Office Excel cannot
    access the file 'Z:\TestExcelMacro.xlsm'. There are several possible reasons:
    • The file name or path does not exist.
    • The file is being used by another program.
    • The workbook you are trying to save has the same name as a currently open work
    [Powershell error msg]
    Exception calling "Add" with "0" argument(s): "Microsoft Office Excel cannot open or save any more documents because th
    ere is not enough available memory or disk space.
     To make more memory available, close workbooks or programs you no longer need.
     To free disk space, delete files you no longer need from the disk you are saving to."
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : ComMethodTargetInvocation
    You cannot call a method on a null-valued expression.
        + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
        + FullyQualifiedErrorId : InvokeMethodOnNull

  • Oracle Server 11.2.0.1.0 64-bit fails when invoked from InstallShield

    I'm trying to install the Oracle Server 11.2.0.1.0 64-bit on Windows 2008 SP1 from the InstallShield 2010.
    The installation is silent. Invoked by command line:
    J:\Oracle_11.2.0_x64\OracleServer_11.2.0.1_x64\setup.exe ORACLE_HOME_NAME="ARAXI_11" -silent -nowelcome -force -nowait -noconsole -loglevel fine -noconfig -ignoreSysPrereqs use_prereq_checker=false -responseFile C:\Oracle\11.2.0\installation\scripts\SVRCUSTOM11.2.0.rsp
    The problem is that when the command is invoked from command line (cmd), the installation is successful.
    However, when the same command is invoked from under the InstallShield, the installation fails on Architecture requirement check:
    INFO: *********************************************
    INFO: Architecture: This is a prerequisite condition to test whether the system has a certified architecture.
    INFO: Severity:CRITICAL
    INFO: OverallStatus:OPERATION_FAILED
    INFO: All forked task are completed at state performChecks
    INFO: Completed background operations
    INFO: Moved to state <performChecks>
    INFO: Waiting for completion of background operations
    INFO: Completed background operations
    INFO: Validating state <performChecks>
    INFO: Using default Validator configured in the Action class oracle.install.ivw.db.action.PrereqAction
    INFO: Adding ExitStatus PREREQUISITES_NOT_MET to the exit status set
    SEVERE: [FATAL] [INS-13013] Target environment do not meet some mandatory requirements.
    CAUSE: Some of the mandatory prerequisites are not met. See logs for details. C:\Oracle\Inventory\logs\installActions2011-05-19_12-58-13PM.log
    ACTION: Identify the list of failed prerequisite checks from the log: C:\Oracle\Inventory\logs\installActions2011-05-19_12-58-13PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
    INFO: Advice is ABORT
    INFO: Adding ExitStatus INVALID_USER_INPUT to the exit status set
    The questions:
    1. Why the requirement checks give different results when installation is invoked from CMD and from InstallShield?
    2. Why the requirement checks are done despite the parameters "-ignoreSysPrereqs" and "use_prereq_checker=false"?
    3. What should I do to get the installation pass (either remove the check or make it satisfying)?
    PS. The 32 bit Oracle Server installation on Windows 2003 works without problem when invoked from InstallShield.

    Please use 2008R2 if you want to install 11gR2 versionThank you for that update. Possibly it will help me to solve another trouble.
    Regarding the problem I described, the issue is that I install Oracle Client 32 bit prior to trying to install Oracle Servier 64 bit.
    The Oracle Client setup had started RemoteExecService.exe 32 bit process. And the process remained running after the installation completed.
    The Oracle Server setup utilizes the running RemoteExecService.exe process. Since the process is 32 bit, the architecture requirement check had failed.
    I've added to my script killing the process
    taskkill /F /IM RemoteExecService.exe
    before invoking the Oracle Server installation.
    That way the Oracle Server setup starts another RemoteExecService.exe process and the new process is 64 bit.
    The architecture requirement succeed.

  • OLE Program works in debug mode fails when run from F8

    Hello,
    I have implemented a code from this forum for sending documents to printer, as below, but although it works well in debug mode, it fails when I execute directly from SE38? Any idea?
    Best Regards,
    Didem GUNDOGDU
      CREATE OBJECT gs_word 'WORD.APPLICATION'.
      SET PROPERTY OF gs_word 'Visible' = '0'.
      CALL METHOD OF gs_word 'Documents' = gs_documents .
      CALL METHOD OF gs_documents 'Open' = gs_newdoc
        EXPORTING
          #1 = p_filep .
      CALL METHOD OF gs_word 'ActiveDocument' = gs_actdoc.
      CALL METHOD OF gs_actdoc 'PrintOut'  .
      CALL METHOD OF gs_word 'Quit' .

    Hi Didem,
    Just a suggestion: could you print syst-subrc after each method call? Perhaps that can give you a clue.
    Regards,
    John.

  • Crystal Reports 2008 fails when called from e Web Service under 64bit OS

    I have discovered that Crystal Reports 2008 doesn't work when called from a Web Service running under 64bit Windows platforms (in my case Windows 2003 Server and Windows XP 64bit); practically no object is instantiated. I've tried several solutions without success.
    Before creating a wrapper component to use under COM+, is there anybody who has a better and cheaper solution than creating another component to wrap CR 2008 ?

    Hi Sergio,
    Before I mark this post as assumed answered I would just like to say and re-iterate that at this time there is no one answer and we fully understand your concerns. As you know in CR 6.0 it came in 16 and 32 bit versions because at the time 32 bit was relatively new but 16 bit was the norm. This is also true for 32 to 64 bit, 32 is the norm and 64 bit is relatively new. We know and are well aware 64 bit is the future and we are working as quickly as we can to move in that direction. Because of the complexity of the Product it's not simply a matter of re-compiling all of our dll's in 64 bit format. The core of our data connectivity with our database drivers which are dependant on third party clients must also need to support 64 bit modes. This as well as Printer drivers also need to be 64 compatable, there are a multitude of dependencies that we rely on that must add 64 bit support. As a programmer you are well aware of the issues around Thunking back and forth between 32 to 64 bits, it can cause delays and potentially loss of data which is a whole other issue. Not to mention also that we would have to ship both versions potentially doubling the size of the distribution packages or doubling the size of the dll's to have the ability to work in both modes. Relatively speaking of course, it would not be double the size but the variables would need to be able to allocate 32 or 64 memory blocks.
    The other option is to produce 2 separate versions, this alone is a massive project. Any issue would need to be fixed in separate code streams.
    So I'm sure you can see it's not simply a matter of saying yes we support 64 bit. It's a massive project that is going to take time to do and we have to wait for the third party drivers to commit also.
    Visual Studio .NET 2005 and 2008 is the only option if you want true 64 bit but you will be limited on what DB's you can support and export formats you can export to. They are the only drivers we did convert to 64 bit.
    Thank you for your understanding
    Don

  • Stored procedure fails when run from SSIS DataFlow task

    I'hv a stored procedure (with dynamis SQL), taking colums names as parameters to run and returns dynamic columns in output. E.g. if I pass @ipselect = '*' it will returns all columns in output, when I pass @ipselect =  'column1, column2, column3'  
    ,it will returns 3 columns in output.
    Now I have SSIS package. I've Data Flow task in foreach loop container and it is taking parameter from client table. e.g
    clientid       column name
    1                        *
    2                columns1,columns2,column3
    3               columns1,columns2,column3,columns4,columns5,column6
    4                       *
    Foreach container loop through each client id and set ipselect parameter with
    column name  and that value is being passed to @ipselect stored procedure in Dataflow task. When there is @ipselect = '*' it runs fine ,returns all columns and write to destination. But when there is ipselect = 'columns1,columns2,column3',
    it fails with below error:
    [OLE DB Source [1]] Error: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80040E55.
    An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult: 0x80040E55  Description: "Column does not exist.".
    [SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on component "OLE DB Source" (1) returned error code 0xC0202009.  The component returned a failure code when the pipeline engine called PrimeOutput().
    The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.  There may be error messages posted before this with more information about the failure.
    Any suggestion or solution would be really helpful.
    Thanks!!

    Hi Kevin,
    Just an addition. To create SSIS package programmatically, please refer to the document:
    http://msdn.microsoft.com/en-us/library/ms345167.aspx 
    To implement dynamic column mapping through SSIS Script Component, please refer to:
    http://wikiprogrammer.wordpress.com/2011/04/08/dynamic-column-mapping-in-ssis-part-1/ 
    http://blog.quasarinc.com/ssis/best-solution-to-load-dynamically-change-csv-file-in-ssis-etl-package/ 
    Regards,
    Mike Yin
    TechNet Community Support

  • Loading fails, when classes from other packages are referenced

    My applet follows a simple package structure.
    There's package P1 and there's another package in it P2 (P1.P2)
    P1 contains Applet class A.
    P2 contains another class C and interface I. C implements I.
    A contains a reference of C, which is initialized in the constructor. The use in the constructor of the A (the applet) is something like this
    public A () {
              reg = ToolkitRegistry.getEntry (); //where reg is a reference of type ToolkitRegistry.
              // some more code
              i = (I) C.getC (); //where i is a reference of type I.
    }Trying to load this applet throws error saying "Package Loading failed". Important is to note that the loading occurs successfully by commenting out this line           i = (I) C.getC (); //where i is a reference of type I. , without any other change.
    I understood this to be some problem with the AIDs assigned to both the packages while converting. Unsure of what's the correct way to assign the PIX values, I've been trying some permutation/combinations, it doesn't seem to work.
    Has neone already faced this problem & knows the solution? (The specs aren't much help)

    One more point ..... I mentioned commenting the statements, I DO NOT commment the other statements referencing the other package. This means that the loading IS succesfull, even when these two lines reside in there.
    1. import P1.P2.*; 2. private I i = null;Above two lines pass the loader. The object creation gets stuck.
    Wonder if the package references are actually alright, because JVM wud've treated both situations in a similar way. JCVM is ofcourse different but JCVM spec does not say nething abt this situation (rem: everything is public, so the access control restrictions also do not apply)
    are there ne instantiation restrictions? [In my case, it's in the constructor thread)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Stored procedure runs fine from SSMS but fails when called from the C# app

    I'm using SS Express 2012 so I doubt I have all possible debugging capabilities at my disposal, although I'm still trying to figure this out myself.
    The compiled C# application has logging to insure that the the SP is being invoked, the appropriate line of code is  definitely being reached. The logging always reports 'success' suggesting that the SP was successfully executed (and no exception is thrown
    to the C# app), but the indexes aren't getting rebuilt (I have a fragmentation query proving they are not rebuilt). Yet it runs successfully if I
        (1) set a breakpoint in the C# app and step through the code line by line OR
        (2) run the SP from the SSMS GUI.
    The fragmentation query confirms sucess for both 1 and 2.
    -I can't rely on the GUI because I want to run this overnight immediately after the C# app is finished inserting new records.
    - The SP loops through all the tables, and all the indexes in each table, checking for fragmentation and rebuilding any indexes over 7% fragmented.
    ALTER Procedure [dbo].[usp_RebuildIndexes]
    AS
    Declare @fetch_TableName NVARCHAR(256)
    DECLARE Cursor_Tables CURSOR FOR
    SELECT Name FROM sysobjects WHERE xtype ='U'
    OPEN Cursor_Tables
    While 1 = 1 -- Begin to Loop through all tables
    BEGIN
    FETCH NEXT FROM Cursor_Tables INTO @fetch_TableName -- fetches the next table
    if @@FETCH_STATUS <> 0 break
    print '---------' + @fetch_TableName
    Declare @fetch_indexName NVARCHAR(256) -- loops through al indexes of the current table
    DECLARE Cursor_Indexes CURSOR FOR -- Looking for indexes fragmented more than 7 percent.
    SELECT name as indexName
    FROM sys.dm_db_index_physical_stats (DB_ID(DB_Name()), OBJECT_ID(@fetch_TableName), NULL, NULL, NULL) AS a
    JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id
    Where Name is not null and avg_fragmentation_in_percent > 7
    OPEN Cursor_Indexes
    WHILE 1= 1 -- Begin to Loop through all Indexes
    BEGIN
    FETCH NEXT FROM [Cursor_Indexes] INTO @fetch_indexName
    if @@FETCH_STATUS <> 0 break
    Declare @SqL nvarchar(2000) = N'ALTER INDEX ' + @fetch_indexName + ' ON ' + DB_Name() + '.dbo.' + @fetch_TableName + ' Rebuild'
    print @Sql
    Begin TRy
    Execute sp_executeSQL @sql
    End Try
    Begin Catch
    Declare @err nvarchar(2000) = ERROR_MESSAGE();
    throw 51000, @err, 1
    End Catch
    End -- Ends looping through all indexes
    CLOSE [Cursor_Indexes]
    DEALLOCATE [Cursor_Indexes]
    End -- Ends looping through all tables
    CLOSE Cursor_Tables
    DEALLOCATE Cursor_Tables
    foreach (objDB DB in oUserPrefs.DBs) {
    report += DB.Real_Name;
    if (DB.cn == null) DB.cn = sqlCn(DB.Real_Name, SystemInformation.ComputerName);
    try {
    if (DB.cn.State != ConnectionState.Open) DB.cn.Open();
    } catch (Exception ex) {
    report += " - Failed because can't open a connection.\r\n";
    continue;
    DB.OpenedAConnection = true;
    DataTable dt = null;
    try {
    dt = oParam.fillDt("dbo.usp_RebuildIndexes", DB.cn, null);
    } catch (Exception ex) {
    report += " -failed because " + ex.Message + "\r\n\r\n";
    continue;
    report += " - success.\r\n";
    DB.LastTimeRebuiltIndexes = DateTime.Now;

    Your proc is a bit of a mess and hard to read. This should get you what you need though. I added a little logic in the middle that determines if the index should be reorged, or rebuilt.
    You were right that my script was too messy and I used your code/logic to rewrite mine. Thanks! I tried it this morning and it worked fine, but I will have to see how it runs overnight to be sure.
    Here's the weird thing. My original code should have worked. In fact I'm actually using it in 3 c-sharp apps each of which has 3 to 7  Express 2012 databases (about 10 million records per database). For about a month it's been working fine on two of the
    apps. Furthermore this morning I used a commercial file-comparison tool to verify that the 3rd app has been running an identical version of the SP. So I'm at a total loss as to what went wrong in the 3rd app.
    Here's my rewrite.
    Alter Procedure [dbo].[usp_RebuildIndexes]
    As
    Declare @Messages Table(Msg nvarchar(2000))
    Declare @IndexName nvarchar(256), @TableName NVARCHAR(256)
    DECLARE Cursor_Indexes CURSOR FAST_FORWARD FOR -- GEt a list of all indexes for all tables.
    select idxs.name as indexName, o.Name as TableName
    from sys.indexes idxs
    inner join sysobjects o on idxs.object_id = o.id
    inner join sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL,NULL,NULL) as stats
    on stats.object_id = idxs.object_id and stats.index_id = idxs.index_id
    where xtype = 'u' and idxs.name is not null And avg_fragmentation_in_percent > 7
    OPEN Cursor_Indexes
    While 1 = 1
    BEGIN
    FETCH NEXT FROM Cursor_Indexes INTO @IndexName, @TableName
    if @@FETCH_STATUS <> 0 break
    Declare @SqL nvarchar(2000) = N'ALTER INDEX ' + @IndexName + ' ON ' + DB_Name() + '.dbo.' + @TableName + ' Rebuild'
    insert @Messages(Msg)VALUES(@sql)
    Execute sp_executeSQL @sql
    End
    CLOSE [Cursor_Indexes]
    DEALLOCATE [Cursor_Indexes]
    Select * From @Messages

  • How stored procedure get executed when called from java

    When we create a stored procedure or function in oracle, it is compiled and stored there. From java when we call them no compilation is performed its a simple call. When a function or stored procedure is invoked from multiple instance of java objects(for a single session), does the stored procedure clone it self so that it can be called by different java objects which I think not possible at all. In such cases when one java object is interacting with the stored procedure, does other java objects go on a wait state. What happens if sessions are different.
    Please help.

    >
    does oracle creates multiple instance of a particular stored procedure for different sessions or connections. if not then there might be some kind of waiting principle followed.. what happens exactly
    >
    What happens exactly is detailed in Chap. 14 Memory Architecture ni the Database concepts doc
    http://docs.oracle.com/cd/E14072_01/server.112/e10713/memory.htm#i21266
    The code is shared but the data isn't (see the lone exception to this below).
    See the section on the Library Cache
    >
    Program Units and the Library Cache
    The library cache holds executable forms of PL/SQL programs and Java classes. These items are collectively referred to as program units.
    The database processes program units similarly to SQL statements. For example, the database allocates a shared area to hold the parsed, compiled form of a PL/SQL program. The database allocates a private area to hold values specific to the session that runs the program, including local, global, and package variables, and buffers for executing SQL. If multiple users run the same program, then each user maintains a separate copy of his or her private SQL area, which holds session-specific values, and accesses a single shared SQL area.
    >
    The exception is when code uses the SERIALLY_REUSABLE pragma. In that case the memory for package state is in the SGA and users do not have their own copy in their UGA.
    See the SERIALLY_REUSABLE pragma in the PL/SQL Language doc
    http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/seriallyreusable_pragma.htm
    >
    The global memory for serially reusable packages is pooled in the System Global Area (SGA), not allocated to individual users in the User Global Area (UGA). That way, the package work area can be reused. When the call to the server ends, the memory is returned to the pool. Each time the package is reused, its public variables are initialized to their default values or to NULL.
    Serially reusable packages cannot be accessed from database triggers or other PL/SQL subprograms that are called from SQL statements. If you try, the database generates an error.

  • Insert using Spatial Index fails when called from PHP

    I have a stored procedure that inserts into a table with a spatial index on one of its fields.
    When I run the procedure from SQL Server Management Studio it runs just fine.
    When I run it from PHP, it returns the error: "INSERT failed because the following SET options have incorrect settings: 'CONCAT_NULL_YIELDS_NULL, ANSI_WARNINGS, ANSI_PADDING'. Verify that SET options are correct for use with indexed views and/or indexes
    on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations"
    From within Management Studio, I have tried many different combinations of settings, until I wound up with the list I have in the procedure below.
    Within Managment Studio the error changes based on the options I have set, but PHP always replies with: 'CONCAT_NULL_YIELDS_NULL, ANSI_WARNINGS, ANSI_PADDING'
    I have configured PHP to use the same SQL user as management studio, and I have tried both mssql_query and mssql_execute with bound parameters.
    The spatial index is on the field post.location If I remove the spatial index it works, but I need the spatial index.
    CREATE PROCEDURE insert_post ( @subject AS VARCHAR(250), @body AS VARCHAR(2000), @latitude AS FLOAT, @longitude AS FLOAT ) AS BEGIN
    SET NOCOUNT ON
    SET ANSI_WARNINGS ON
    SET ANSI_PADDING ON
    SET CONCAT_NULL_YIELDS_NULL ON
    SET NUMERIC_ROUNDABORT OFF
    DECLARE @location AS geography = geography::Point(@latitude, @longitude, 4326)
    INSERT INTO post
        subject,
        body,
        location
    ) VALUES (
        @subject,
        @body,
        @location
    END

    Hi Charles
    Your issue looks like it have two basic sources: (1) The connection string properties, (2) The table structure and the data which you try to insert.
    (1) The connection string properties can be specified in various ways.
    You can set most of them during the connection, depending on the provider which you are using. We did not get from you any information about the PHP code, so we have no information regarding this part.
    The connection properties can be changed after the connection was made, which is basically what you have try to do. But we don't know what properties
    are differents (since you .. the PHP code..) but you can check those properties dynamically, insert them to a table and then compare. To check all the properties you can use this post:
    http://ariely.info/Blog/tabid/83/EntryId/153/SQL-Server-Get-Connection-Properties.aspx
    (2) We need to understand your
    table structure and compare it to yours query. Please post your DDL+DML (queries to create the table and to insert some sample data), and the full SP code
    as it is now.
    [Personal Site]  [Blog]  [Facebook]

  • Journal import fails when called from PLSQL

    Hi,
    When journal import is called from plsql code it is failing with error in 'gllacc() Function returning without value and no data found'.
    Same transaction is run succesfully from front end.
    I checked both gl_interface and gl_interface_control table but couldnt find the issue.
    Any info on this would be very helpful.
    Thanks
    Sandhya

    FOR l_rec IN (SELECT ledger_id,group_id from apps.gl_interface
    WHERE status='NEW'
    AND user_je_source_name='GIS_DATA_CONVERSION'
    GROUP BY ledger_id,group_id
    ORDER BY group_id
    LOOP
    apps.gl_journal_import_pkg.populate_interface_control (user_je_source_name => 'GIS_DATA_CONVERSION',
    GROUP_ID => l_rec.group_id,
    set_of_books_id => l_rec.ledger_id,
    interface_run_id =>vl_interface_id,
    table_name => 'GL_INTERFACE',
    processed_data_action=>'D'
    COMMIT;
    vl_request_id := apps.fnd_request.submit_request (application => 'SQLGL', -- application short name
    program => 'GLLEZLSRS', -- program short name
    description => NULL, -- program name
    start_time => NULL, -- start date
    sub_request => FALSE, -- sub-request
    argument1 => 2065, --Data access set id
    argument2 => 'GIS_DATA_CONVERSION', --Source
    argument3 => l_rec.ledger_id, -- set of books id
    argument4 => l_rec.group_id,
    argument5 => 'N', -- error to suspense flag
    argument6 => NULL, -- create summary flag
    argument7 => 'N' -- import desc flex flag
    COMMIT;
    IF ( vl_request_id = 0 ) THEN
    xxgis.gis_conv_util_pkg.debug_print_p(1,'FND_LOG','E001: Journal Import Submission Failed. ' || SQLERRM);
    retcode := 2;
    EXIT;
    ELSE
    xxgis.gis_conv_util_pkg.debug_print_p(1,'FND_LOG','P001: Submitted Journal Import Program for group id: ' || l_rec.group_id ||
    'and ledger :'||l_rec.ledger_id|| ', Request ID: ' || vl_request_id);
    END IF;
    END LOOP;

  • Elements organizer 11 fails when opened from the welcome banner or from PSE11

    Windows 8 operating system (upgraded from 7)
    PSE & premier installed from disk, purchased from Amazon.
    Organizer has sometimes worked, but the last two times (after re-booting), it has failed.
    Out of space for back up, but I can't fix that without getting into the catalogs.  (I don't want to buy space from Adobe.)

      Try making a direct desktop icon for the Organizer and see if you can launch the program directly from the desktop.
    Right click anywhere on the desktop and select New >> Shortcut
    Browse to Computer OS C:
    And find the PSE Organizer application in Program Files or Program Files (x86) on Windows 7 - 64 bit.
    Inside the Adobe >> Photoshop Elements Organizer (yellow folder) you are looking for an application file “PhotoshopEementsOrganizer” with six small icons (e.g. representing thumbnails)
    Select it and click OK
    Click next
    Then click finish
    You should now be able to launch directly form the desktop by double clicking on the new icon.

  • Recording fails when reading from a buffer

    Hello together,
    I'm new to the java sound api so I decided to get some example code working that I found on the internet. But I Fail.
    Here's the code snippet that does the recording and runs in a thread:
    ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
    DataLine.Info info = new DataLine.Info(TargetDataLine.class, m_format);  // m_format is initialised somewhere in the c'tor
    TargetDataLine inputLine = (TargetDataLine)AudioSystem.getLine(info);
    inputLine.open();
    inputLine.start();
    AudioInputStream inStream = new AudioInputStream(inputLine);
    int iCount = 0;
    byte[] buffer = new byte[1024];
    while(m_bRecording && ((iCount = inStream.read(buffer)) != -1))
    {   // m_bRecording will be set false when invoking stop() method
         if(!m_bPause)
             byteOutStream.write(buffer, 0, iCount);
    inStream.close();
    byteOutStream.flush();
    byteOutStream.close();
    byte[] inBuffer = byteOutStream.toByteArray();
    AudioInputStream inRecorded = new AudioInputStream(new ByteArrayInputStream(inBuffer),
                                            m_format,
                                            inBuffer.length / m_format.getFrameSize());
    Clip clip = (Clip)AudioSystem.getLine(info);
    clip.open(inRecorded);I've read the documentations about the classes and their methods so everything seems to make sense about this approach. But when I invoke clip.start() then all I get to hear is only a second or less of the sound I recorded. I found a link (http://www.jsresources.org/faq_audio.html#recordings_cutoff) that may (I'm not sure) be the solution I am looking for. But I still don't know how to apply this suggestion on my example code. Maybe you can help.
    By the way: I've already tried the examples from www.jsresources.org and they work fine. But now I find it important to have my recorded data in a byte array so I will be able to apply effects and play around with the data and see what happens.
    I am looking forward to reading your answers. Tanks!
    Edited by: schmetterfly on Dec 22, 2009 10:22 AM

    captfoss wrote:First, there's absolutely no need for "inStream" because you can read directly from inputLine...so get rid of inStream.You're totally right about this so I got rid of the inStream.
    captfoss wrote:Second, redo the loop so it doesn't exit until you run out of data on the line...rather than when the boolean changes. Close the line in response to the boolean changing (don't flush it or anything, just close it) and continue to read until you get a -1 from reading from it...My code looks like this now.
       inputLine.open();
                inputLine.start();
                byte[] buffer = new byte[1024];
                int iCount = 0;
                do
                    iCount = inputLine.read(buffer, 0, buffer.length);
                    if(!m_bPause)
                        byteOutStream.write(buffer, 0, iCount);
                    if(!m_bRecording && inputLine.isActive())
                        inputLine.stop();
                        //inputLine.drain();
                }while(iCount > 0);
                inputLine.close();It is important to stop() the line, then go on reading until there is no more data to read and then close() the line. It is neccesary to just stop() the line first because it muste be open for reading. So I close() the line when all the job is done.
    I added inputLine.isActive() as an additional condition for the line to stop so it will not be stopped several times although nothing bad happens when closing the line several times.
    After stepping into the if-block the loop continues few more times. When looping for the next to last time iCount has a value smaller than 1024. I suppose this way I can see that the line in fact does run out of data. When looping the last time iCount equals 0 and the loop is left.
    Everything looks just fine but it still doesn't work properly.
    Im starting to wonder if there's something wrong with the version of my JRE installed or the OS or the input device... Is there a way to figure that out?

Maybe you are looking for

  • Upload document to Temp Folder using Rest API not working

    I am using Poster in Firefox to upload an xml document to document Temporary Folder. Response I'm getting is 400 Bad Request. Is this a problem with Poster not supporting file upload to UCCX or are there parameters i'm missing for this? Url=http://<u

  • I cannot get my iPhone 4 to connect to iTunes

    When I plug my iPhone 4 into my computer it wont show up in iTunes at all. The first few times it said there was an unrecognized error and it couldnt connect to the iphone but now it just does nothing. Ive tried my old iphone too and it wont connect

  • ATV & D-Link DIR-655 (Not connecting in N Mode)

    Hopefully someone can explain this to me. The D-Link DIR-655 does not connect to the ATV in N-mode, only in G. I don't see anything in the ATV to force a N-mode connection. Are these 2 unit compatible in N-Mode or do I have to have the new Airport Ex

  • Grey screen and "incorrect number of thread records"

    I think I am in trouble. My eMac will not boot and gets stuck on the great screen with the Apple logo and the spinning windmill. I have followed the instructions in the Apple help article up to but not including "archive and install". I tried the adv

  • Output device issue in smartform

    Hi All, I have configured smartform and driver program throough nace and testing output . I am facing the problem of  alignment of  output which is changing  depening on Printer. i.e., for printer one the field KOMVD-KBETR(VAT) is prining properly .B