cancel
Showing results for 
Search instead for 
Did you mean: 

Any known issues with CR (v. 13.0.9.1312) and MS APP-V?

anders_gustafsson
Participant
0 Kudos

Hi!

I am helping a client troubleshoot a problem with MS App-V 5. He has created an App-V pack of our app and it fails printing. The actual error is:

12.06.2014 11:58:48 OpenReportFile(C:\ProgramData\App-V\DA607900-9063-4A5C-A935-00D13FD31192\F298F1C1-3210-414A-BAEA-6F1BABA6245F\Root\Reports\Kontroll.rpt), alternativ fil C:\ProgramData\App-V\DA607900-9063-4A5C-A935-00D13FD31192\F298F1C1-3210-414A-BAEA-6F1BABA6245F\Root\Reports\_Kontroll.rpt

12.06.2014 11:58:49 gcnew m_Report: Retrieving the COM class factory for component with CLSID {F734A321-8381-4FFD-A614-139E8906DC83} failed due to the following error: 8007007a The data area passed to a system call is too small. (Exception from HRESULT: 0x8007007A).

The GUID is for clientdoc.dll and I am wondering about this "too much data". Could it be as simple as that the very long paths created by App-V results in an overflow somewhere?

Anyone else seen this? Ay tips for troubleshooting?

The error happens when the ReportDocument is instantiated (CrystalDecisions::CrystalReports::Engine::ReportDocument()) but before the actual report file is loaded. I think it is when clientdoc.dll calls crystalReports.Engine.Dll

Accepted Solutions (1)

Accepted Solutions (1)

0 Kudos

Use Process Monitor and see how long the paths are or any other Access Denied type errors.

Don

anders_gustafsson
Participant
0 Kudos

Problem is that there are no specific errors like that in process monitor if I look, just before the error is thrown (below), does not look pretty when posted, but is perfectly readadble when edited.

Edit: The path:

C:\ProgramData\App-V\DA607900-9063-4A5C-A935-00D13FD31192\7BC9CC58-2B85-4ED1-8ED4-5B38E6CFBE7B\Root\VFS\ProgramFilesX86\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\libOCAhelperw-5-0.dll

Is indeed 256 chars though and:

C:\Users\admteef\AppData\Local\Microsoft\AppV\Client\VFS\DA607900-9063-4A5C-A935-00D13FD31192\Common AppDataS\App-V\DA607900-9063-4A5C-A935-00D13FD31192\7BC9CC58-2B85-4ED1-8ED4-5B38E6CFBE7B\Root\VFS\ProgramFilesX86\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\clientdoc.dll

is 343 chars.

15:05:55,0242083Lp.exe5696CreateFileC:\ProgramData\App-V\DA607900-9063-4A5C-A935-00D13FD31192\7BC9CC58-2B85-4ED1-8ED4-5B38E6CFBE7B\Root\VFS\ProgramFilesX86\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\libOCAhelperw-5-0.dllSUCCESSDesired Access: Read EA, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Open For Backup, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
15:05:55,0243152Lp.exe5696CloseFileC:\ProgramData\App-V\DA607900-9063-4A5C-A935-00D13FD31192\7BC9CC58-2B85-4ED1-8ED4-5B38E6CFBE7B\Root\VFS\ProgramFilesX86\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\libOCAhelperw-5-0.dllSUCCESS
15:05:55,0244168Lp.exe5696CreateFileC:\Users\admteef\AppData\Local\Microsoft\AppV\Client\VFS\DA607900-9063-4A5C-A935-00D13FD31192\ProgramFilesX86S\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\libOCAHelperw-5-0.dllPATH NOT FOUNDDesired Access: Read EA, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Open For Backup, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:05:55,0244844Lp.exe5696ReadFileC:\ProgramData\App-V\DA607900-9063-4A5C-A935-00D13FD31192\7BC9CC58-2B85-4ED1-8ED4-5B38E6CFBE7B\Root\lpsys.mdbSUCCESSOffset: 0, Length: 2 048, Priority: Normal
15:05:55,0247346Lp.exe5696CreateFileC:\ProgramData\App-V\DA607900-9063-4A5C-A935-00D13FD31192\7BC9CC58-2B85-4ED1-8ED4-5B38E6CFBE7B\Root\VFS\ProgramFilesX86\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\libOCAhelperw-5-0.dllSUCCESSDesired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a, OpenResult: Opened
15:05:55,0248554Lp.exe5696QueryBasicInformationFileC:\ProgramData\App-V\DA607900-9063-4A5C-A935-00D13FD31192\7BC9CC58-2B85-4ED1-8ED4-5B38E6CFBE7B\Root\VFS\ProgramFilesX86\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\libOCAhelperw-5-0.dllSUCCESSCreationTime: 2014-06-12 14:59:48, LastAccessTime: 2014-06-12 14:59:48, LastWriteTime: 2014-06-12 14:59:48, ChangeTime: 2014-06-12 14:59:48, FileAttributes: ASFONCI
15:05:55,0249339Lp.exe5696CloseFileC:\ProgramData\App-V\DA607900-9063-4A5C-A935-00D13FD31192\7BC9CC58-2B85-4ED1-8ED4-5B38E6CFBE7B\Root\VFS\ProgramFilesX86\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\libOCAhelperw-5-0.dllSUCCESS
15:05:55,0250148Lp.exe5696ReadFileC:\ProgramData\App-V\DA607900-9063-4A5C-A935-00D13FD31192\7BC9CC58-2B85-4ED1-8ED4-5B38E6CFBE7B\Root\VFS\ProgramFilesX86\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\clientdoc.dllSUCCESSOffset: 459 264, Length: 15 872, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
15:05:55,0268969Lp.exe5696CloseFileC:\ProgramData\App-V\DA607900-9063-4A5C-A935-00D13FD31192\7BC9CC58-2B85-4ED1-8ED4-5B38E6CFBE7B\Root\VFS\Windows\assembly\GAC_MSIL\CrystalDecisions.CrystalReports.Engine\13.0.2000.0__692fbea5521e1304\CrystalDecisions.CrystalReports.Engine.dllSUCCESS
0 Kudos

Hi Anders,

The question is is why is MS VApp looking for CR runtime in the user folder?

C:\Users\admteef\AppData\Local\Microsoft\AppV\Client\VFS....

It is found in our x86 folder, question for Microsoft's VApp team... There are known path length limitations but nothing we can fix...

Don

anders_gustafsson
Participant
0 Kudos

Yes. The fact that it was looking there was pointed out by the App-V guy as well and is definitely odd, but AFAIK, that is nothing I can affect in any way from my app, right? Normally (ie no App-V) the CR runtime is installed from Installshield, along with the app and we just call Crystal. No funny stuff from our side.

0 Kudos

Exactly, We generate registry keys to tell our runtime where/what and when can access it and where it all sits. Maybe it's install shield that is altering the location... Try building a simple runtime distribution package in Visuyal Studio and see if that works with APP-V.

Otherwise, only option is don't use APP-V

Don

former_member183750
Active Contributor
0 Kudos

The runtime path is something to chase down for sure. But long path names, see this:

Has Windows 7 Fixed the 255 Character File Path Limit? - Stack Overflow

Google and MS has bunches more "stuff". Maybe that will help(?).

- Ludek

Senior Support Engineer AGS Product Support, Global Support Center Canada

Follow us on Twitter

anders_gustafsson
Participant
0 Kudos

Don, Ludek,

Yes. I know that bad things will happen when paths exceed 255 chars and even if Windows (in theory) has fixed this, does this AFAIK require you to use new API calls that few apps use.

Previous iterations of App-V ran stuff from a virtual drive called Q:, but that went away in v5 and I think it might be worth investigating.

I am also setting up a similar setup here to experiment with App-V. The question whether to use App-V or not is unfortunately not upp to me

Have a nice Midsummer. I will continue with this after the holidays.

anders_gustafsson
Participant
0 Kudos

OK. I have since managed to duplicate it locally. But, it only happens with the RDP-version of the App-V 5Sp2 client. It works perfectly when running the NON-RDP, ie local appv client.

So I guess we´d have to find out what is different there.

0 Kudos

Hi Anders,

MS seems to be breaking all sorts of Hosting software. Remote Desktop Connection also has a problem with printing and their "Easy Printer" ( Redirected x ). Another customer of ours has an open ticket with them on that issue right now also.

Only option is to contact MS get them to "fix" this one also.

PS - don't use the XPS Printer either, it also has problems, it won't printout a landscape page. It auto-rotates to Portrait and there are other formatting issues too.

Thanks again

Don

anders_gustafsson
Participant
0 Kudos

Installed VS2012 on a machine where I can force the error. The exception happens in CreateRptDoc:

When I breakpoint I see:

CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.CreateRptDoc() + 0x13 bytes
CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.ReportClientDocumentWrapper() + 0x20 bytes
CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.CrystalReports.Engine.ReportDocument.Initialize() + 0xdb bytes
CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.CrystalReports.Engine.ReportDocument.ReportDocument() + 0xbd bytes

Lp.exe!CLpReportJob.OpenReportFile() + 0x33f bytes

CreateRptDoc:

00000000  push        ebp

00000001  mov         ebp,esp

00000003  push        edi

00000004  push        esi

00000005  push        eax

00000006  xor         eax,eax

00000008  mov         dword ptr [ebp-0Ch],eax

0000000b  lea         edx,[ebp-0Ch]

0000000e  mov         ecx,6381D00h

00000013  call        6D77697B

00000018  mov         ecx,63833D8h

0000001d  call        6D76EE2E <- System.Runtime.InteropServices.COMException..ctor


Edit: Thanks Don. Saw your reply after posting my message. Still. If I only could see what data is passed and is too big, then we might find a workaround.

Message was edited by: Anders Gustafsson

anders_gustafsson
Participant
0 Kudos

I also tried SP10. Same thing. Installing the runtime separately on the server does not help either. APPV 4.5 works. App-V regular client 5.0 works. APP-V 5.0 RDS client breaks. I can trace through the code where it breaks, but without symbols, it does not tell me much.

Is there any way to open an official (ie paid for) support case on this?

I know that it is probably Microsoft's fault, but at the end of the day, it is our app that looks bad.

0 Kudos

Hi Anders,

You can get a case but I really don't think it's going to help. The logging is showing it's an issue in CR parts but the root cause is due to AppV and either resources or permissions.

Have you tried using DebugDiag to capture a dump file? It may tell us more.

Try copying the CR folder under the Users folder structure, maybe then they will have access to the CR runtime and resources... Same thing we used to suggest for Citrix environments in CR 7 days. I doubt this will work because so many parts need to be registered in the COM Service but may work...

Looking at MSDN kba articles it seems to be config issues for resources. Have you looked into this also?

Performance Guidance for Application Virtualization 5.0

We use a similar setup for some of our support people through Citrix and they are limited to the amount of free space available in their Virtual connection. Possibly increasing this part may help.

I really feel a call to Microsoft should be able to config the system so this works but if you want to create a case here call ( I think ). It's not "Officially" supported, meaning we have not tested it, so if it is something we are doing we won't be able to fix it anyways BUT I highly doubt it is something we can do. We also don't have systems set up so we would have to NetViewer to get into your test system. But nothing we can do on CR side, it would all be configuring AppV, which I doubt anyone here is an expert on.

So assuming AppV version 5 SP 2 did not make any core changes this is likely a configuration change that needs to be done. Have you tried changing any of it's setting on your test system just to see if you can make it work?

Don

anders_gustafsson
Participant
0 Kudos

Thanks Don,

I tried installing the runtime separately, but the error showed up anyway. I will look into DebugDiag tomorrow.

The customer is trying to open a support case with MS for the issue as well.

I am not that familiar with App-V, the customer is the expert there. I have a test system set up and we did a session together to duplicate the issue.

The gut feeling I have is that it is the change from Q:\ in 4.5 to %AppData%\Reallylongguid\Anotherreallylongguid that is the root issue, but why the regular client works and the RDS one does not is beyond me.

anders_gustafsson
Participant
0 Kudos

Traced some more, using ApiMonitor:

#Time of DayThreadModuleAPIReturn ValueErrorDuration
7526:48:46.281 AM1clr.dllCoGetClassObject ( {f734a321-8381-4ffd-a614-139e8906dc83}, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER, NULL, IClassFactory, 0x002eaf30 )-2147024774

0x8007007a = The data area passed to a system call is too small.

0.0166885

GUID f734a321-8381-4ffd-a614-139e8906dc83 = ReportClientDocument, clientdoc.dll

Api

HRESULT CoGetClassObject(

  _In_      REFCLSID rclsid,

  _In_      DWORD dwClsContext,

  _In_opt_  COSERVERINFO *pServerInfo,

  _In_      REFIID riid,

  _Out_     LPVOID *ppv

);

In this case *ppv is NULL which is pretty much an invalid pointer. Question is: Where does it get it from? Apparently a previous operation, most likely the libWhatever helper crystal DLL.

Digged some more. There is an underlying system call:

#Time of DayThreadModuleAPIReturn ValueErrorDuration
10127:31:09.897 AM1KERNELBASE.dllLdrLoadDll ( "C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86;;C:\Windows\system32;C:\Windows\system;C:\Windows;C:\Users\Administrator\WINDOWS;.;C:\ProgramData\Microsoft\AppV\Client\I, 0x002e9db0, 0x002e9d98, 0x002e9da4 )STATUS_BUFFER_TOO_SMALL0xc0000023 = {Buffer Too Small} The buffer is too small to contain the entry. No information has been written to the buffer.0.0048485

LdrLoadDll is undocumented, but presumably called by LoadLibrary. It appears to be a call to load:

"C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\clientdoc.dll"

From a search path of:

"C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86;;C:\Windows\system32;C:\Windows\system;C:\Windows;C:\Users\Administrator\WINDOWS;.;C:\ProgramData\Microsoft\AppV\Client\I

The entire path is 932 bytes (unicode) ie 466 chars.

Edit: I can wiggle settings, exclude stuff from PATH, but I still end up with a path longer than 255 chars and I assume there is where LdrLoadDll barfs. FWIW one workaround is to split up the app and the CR runtime and virtualise everything, but the CR Runtime, ie have it statically installed on the server. I will suggest that to the client.

I guess both CR and MS are to blame here. Both App-V and CR create longish paths. By themselves, that is no problem, but combined it spells disaster

Message was edited by: Anders Gustafsson

0 Kudos

Hi Anders,

Good info... I agree, not sure why we have to use such long path names... Definitely makes it clear as to who, what and where the folder belongs to.

Try mapping the CR folder in Explorer, that should shorten the path length also. Or also try using the 8.3 naming convention ( that's the one that uses the ~ in the folder name longer then 8 characters ) that may work also.

Thanks again

Don

will_de_haan
Explorer
0 Kudos

Hi Don,

could you have quick look at my reply?

Thx.

Will de Haan

Answers (1)

Answers (1)

will_de_haan
Explorer
0 Kudos

Hi,

I have the same problem: this error occurs on an app-v client installation, as discussed yesterday with Don.

I now have a stacktrace that might be useful?:

************** Exception Text **************

System.Runtime.InteropServices.COMException (0x8007007A): Retrieving the COM class factory for component with CLSID {F734A321-8381-4FFD-A614-139E8906DC83} failed due to the following error: 8007007a Het gegevensgebied dat aan een systeemaanroep is doorgegeven, is te klein. (Exception from HRESULT: 0x8007007A).

   at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.CreateRptDoc()

   at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper..ctor()

   at CrystalDecisions.CrystalReports.Engine.ReportDocument.Initialize()

   at CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor()

   at CrystalDecisions.ReportSource.NonHTTPCachedReportSource.GetReport(RequestContext context, Boolean bAddToCacheWhenCreated)

   at CrystalDecisions.ReportSource.LocalReportSourceBase.GetAvailableExportFormats(ExportRequestContext reqContext)

   at CrystalDecisions.Windows.Forms.ViewerDocument.GetAvailableExportFormats()

   at CrystalDecisions.Windows.Forms.PageView.CreateReportDocument(String rptURI)

   at CrystalDecisions.Windows.Forms.PageView.CreateNewReportDocument(String pageName)

   at CrystalDecisions.Windows.Forms.CrystalReportViewer.CreateReportSource(Object reportSource)

   at CrystalDecisions.Windows.Forms.CrystalReportViewer.set_ReportSource(Object value)

0 Kudos

Hi Will,

Sorry I don't know what became of Anders test results or if he ever got it to work....

CR doesn't support App-V so nothing I can do to ask DEV to look into it from our side.

Don

will_de_haan
Explorer
0 Kudos

OK, pity,

Cheers,

Will