小编Dav*_*ers的帖子

如何修复SqlException在等待页面缓冲区锁存器类型2(1:37660679),数据库ID 10时发生超时

我正在运行一个应用程序几个小时然后突然:

用户代码未处理SqlException:

等待页面(1:37660679)的缓冲区锁存类型2,数据库ID 10时发生超时.

查看异常的详细信息显示它是"数字""845".ErrorCode和HRESULT -2146232060

问题:如何解决此问题或调试此问题?

  • 我正在运行ASP.NET C#.NET 4.5和SQL Server 2012.

  • 我跑chkdsk但没有发现任何错误.

日志中没有845事件.以下是我在应用程序日志中找到的一些内容(对于event-id 847):

等待latch时发生超时:class'FGCB_ADD_REMOVE',id 00000004F146FBD8,type 2,Task 0x00000004F60450C8:0,waittime 300秒,flags 0x1a,拥有任务0x00000004EDC38928.继续等待.

有很多847看起来大致相同.然后使用event-id 846更少:

等待缓冲区锁存时发生超时 - 类型2,bp 00000004F96EE880,第1页:37660679,stat 0x10b,数据库ID:10,分配单元ID:72057594048544768,任务0x00000004D502E188:0,等待时间300秒,标志0x1a,拥有任务0x00000004D5316558.没有继续等待.

这是847事件的xml视图:

- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
  <Provider Name="MSSQLSERVER" /> 
  <EventID Qualifiers="16384">847</EventID> 
  <Level>4</Level> 
  <Task>2</Task> 
  <Keywords>0x80000000000000</Keywords> 
  <TimeCreated SystemTime="2013-02-24T19:21:54.000000000Z" /> 
  <EventRecordID>281870</EventRecordID> 
  <Channel>Application</Channel> 
  <Computer>xyz-PC</Computer> 
  <Security UserID="S-1-and-so-on" /> 
  </System>
- <EventData>
  <Data>FGCB_ADD_REMOVE</Data> 
  <Data>00000004F146FBD8</Data> 
  <Data>2</Data> 
  <Data>00000004D5316188</Data> 
  <Data>0</Data> 
  <Data>1200</Data> 
  <Data>1a</Data> 
  <Data>00000004EDC38928</Data> 
  <Binary>4F0300000A00000006000000540053002D005000430000000800000053006300680061006200650072000000</Binary> 
  </EventData>
  </Event>
Run Code Online (Sandbox Code Playgroud)

错误发生在一条线上

  db.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)

在观察窗口,我可以看到:

db.GetChangeSet() {Inserts: 1, Deletes: 0, Updates: 0} System.Data.Linq.ChangeSet
Run Code Online (Sandbox Code Playgroud)

谷歌搜索显示微软的一些修补程序,但它们仅适用于SQL Server 2008.

c# asp.net sqlexception sql-server-2012

5
推荐指数
1
解决办法
2万
查看次数

CoreBluetooth XPC 连接无效错误并添加 Info.plist

override func viewDidLoad() {
    super.viewDidLoad()

    ref = Database.database().reference()
    title = "cry"
    //self.delegate = delegate
    centralManager = CBCentralManager.init(delegate: self, queue: .main)            
}

extension ComposeViewController: CBCentralManagerDelegate, CBPeripheralDelegate {

func centralManagerDidUpdateState(_ central: CBCentralManager) {
    switch central.state {
    case .unknown:
        print("unknoe")
    case .resetting:
        print("reset")
    case .unsupported:
        print("unsupported")
    case .unauthorized:
        print("unauthorized")
    case .poweredOff:
        print("poweredoff")
    case .poweredOn:
        print("poweron")

        centralManager.scanForPeripherals(withServices: [CBUUID.init(string: Service_UUID)])
    }
}


func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
    self.peripheral = peripheral
    print("discover peripheral")


    centralManager.connect(peripheral, options: nil) …
Run Code Online (Sandbox Code Playgroud)

swift

5
推荐指数
0
解决办法
3166
查看次数

Azure Selenium 测试 - “STDIO 流未在进程退出事件后 10 秒内关闭”

我有一个 Azure DevOps CI 版本,它同时在同一台服务器上运行大量 selenium 测试。通常它运行良好,但有时我的 selenium 测试任务会由于此错误而超时:

2020-05-07T15:47:37.0692681Z 已完成的测试执行模型... 2020-05-07T15:47:48.6637501Z STDIO 流未在 进程 “C:\TFSAgent5_work_work_taske57e57_work_taskee57”退出事件的10内关闭-42c7-9a53-ab56c98420f9\2.153.9\Modules\DTAExecutionHost.exe'。这可能表明子进程继承了 STDIO 流并且尚未退出。2020-05-07T16:08:50.9254238Z ##[错误]任务超时。

这通常发生在测试重新运行时,我看到它可能每 100 次测试运行一次。这是一个致命的问题,因为它将在超时设置的最长时间内锁定测试代理(在我的情况下为 30 分钟)。许多其他帖子 指出,如果您没有正确关闭 selenium 驱动程序,就会发生这种情况,但是我相信我是,而且,在我的情况下,99/100 时间效果很好,这是我用来关闭 selenium 的代码司机:

[AssemblyCleanup]
public static void Cleanup()
{
    try
    {
        driver.Close();
        driver.Quit();
    }
    catch (Exception e)
    {
        Debug.WriteLine(e.Message);
    }
}
Run Code Online (Sandbox Code Playgroud)

他们真的没有分配有用的建议。我认为这个问题与测试代理服务器(或测试服务器)的负载有关。当我运行较小的 CI 版本(每晚)时,我从未见过这个问题。

以前有人在高负载下遇到过这个问题吗?我想知道“10 秒”从何而来,是否可以以某种方式进行调整?我用来关闭驱动程序的代码是否存在问题,是否有更好的关闭方法可以确保即使它被锁定我仍然可以杀死它,也许我可以添加到我的 catch 语句中?

c# selenium automated-tests selenium-webdriver azure-devops

5
推荐指数
1
解决办法
981
查看次数

表格多维数据集 - Excel 过滤在节点级别不起作用

我有这篇文章中描述的问题。我有两个具有相同数据支持的多维数据集,一个是多维多维数据集,第二个是表格多维数据集。如果我使用 Excel 连接到多维数据集,并将层次结构的顶层(在本例中为“公司”)拖动到多维多维数据集中的筛选器类别中,然后在 Excel 的搜索栏中输入一些文本:

(层次结构 - 在 Excel 中)

在此输入图像描述

(层次结构 - 在 Visual Studio 中)

在此输入图像描述

(多维 - 在 Excel 中作为过滤器)

在此输入图像描述

下面的级别将通过文本进行过滤并返回结果。但是,如果我在表格多维数据集中过滤相同的层次结构,结果会有所不同:

(表格 - 在 Excel 中作为过滤器)

在此输入图像描述

我没有收到任何结果,搜索似乎无法正常运行。如果我查看层次结构的叶级别,我可以让它工作,但看起来 excel 中表格多维数据集的层次结构搜索功能的节点级别不起作用。

以前是否有其他人遇到过这个问题,我很想发布多维数据集的模型,但它是相当专有的,我在多个服务器和客户端上的多种类型的专有多维数据集中遇到了相同的问题。这是我可以更改的模型中的某种配置吗?或者我可以改变Excel中的某些内容?

更新1

我做了更多的挖掘,我在执行搜索时设置了 SQL Profiler 以针对我的 SSAS 服务器运行,似乎它正在生成一个 MDX 查询(这次是在我的“item”层次结构上):

WITH MEMBER [Measures].cChildren As 'AddCalculatedMembers([Item].[I1 - Category].currentmember.children).count' 
Set FilteredMembers As 'Head (Filter(AddCalculatedMembers([Item].[I1 - Category].[Category].Members), InStr(1, [Item].[I1 - Category].currentmember.member_caption, "Per")>0),10001)' 
Select {[Measures].cChildren} on ROWS, 
Hierarchize(Generate(FilteredMembers, Ascendants([Item].[I1 - Category].currentmember))) DIMENSION PROPERTIES PARENT_UNIQUE_NAME, 
MEMBER_TYPE ON COLUMNS FROM [XXX_Test_TabularPro]
Run Code Online (Sandbox Code Playgroud)

但在针对我的多维数据集运行时,它似乎出错了(可以解释为什么我在 Excel 中没有得到任何结果):

您无权访问指定成员,或者指定成员不存在。 …

excel ssas mdx tabular ssas-tabular

5
推荐指数
1
解决办法
789
查看次数

返回没有任何发票行项目的NetSuite交易搜索

我正在尝试将NetSuite的发票导入我的程序.在这个程序中,我需要尽可能多的关于发票的信息才能被退回.但是,似乎没有返回任何订单项信息.这是我为搜索完成的代码.有什么建议?我试图通过尽可能少的呼叫NetSuite来完成此操作,以保持高性能.

SearchResult searchResults = new SearchResult();

TransactionSearch ts = new TransactionSearch();
TransactionSearchBasic tsb = new TransactionSearchBasic();

// Search for Invoices
if (_InvoiceTxnIds.Count > 0)
{
    tsb.internalId = new SearchMultiSelectField();
    tsb.internalId.@operator = SearchMultiSelectFieldOperator.anyOf;
    tsb.internalId.operatorSpecified = true;

    List<RecordRef> rrlist = new List<RecordRef>();
    foreach (string sTxnId in _InvoiceTxnIds)
    {
        RecordRef rr = new RecordRef();
        rr.internalId = sTxnId;
        rrlist.Add(rr);
    }

    tsb.internalId.searchValue = rrlist.ToArray();

    ts.basic = tsb;

    searchResults = _service.search(ts);
}
Run Code Online (Sandbox Code Playgroud)

c# soap web-services netsuite suitetalk

3
推荐指数
1
解决办法
3569
查看次数

如何使用 .net core 的 ILoggerFactory 写入自定义事件源?有没有办法指定来源?

我正在尝试写入 .netcore/c# 中的自定义事件源,但还没有找到指定 .net core 记录器对象的目标源的方法。在这种情况下,我想写入“我的事件日志”而不是应用程序日志。下面的代码成功写入应用程序日志,但我想将其指向“我的事件日志”事件源。

if (!EventLog.SourceExists("My Event Log"))
{
    EventLog.CreateEventSource("My Event Log", "My Program");
}

ILoggerFactory loggerFactory = new LoggerFactory()
        .AddConsole()
        .AddDebug()
        .AddEventLog();

ILogger logger = loggerFactory.CreateLogger<Program>();
logger.LogInformation("DAILY LOAD starting...");
Run Code Online (Sandbox Code Playgroud)

c# logging .net-core loggerfactory

3
推荐指数
1
解决办法
4469
查看次数

SQL Server - 启用代理而不删除并重新创建它

当我运行以下过程时:

SELECT * FROM msdb.dbo.sysproxies
Run Code Online (Sandbox Code Playgroud)

我注意到我的代理帐户之一未启用(与此相关)。我想创建一个脚本来启用所有已禁用的代理帐户,但我的理解是您需要删除该帐户并重新创建它才能重新启用它。在此过程中,您需要了解链接的凭据、描述和链接的子系统。

有没有办法在不删除代理帐户的情况下执行此操作,也许是某种简单的更新语句?

sql sql-server sql-agent sql-server-2016

3
推荐指数
1
解决办法
1684
查看次数

FFmpeg 停止进程 C#

我相信我的“FFmpeg”进程陷入了无限循环,或者它正在等待某些东西而我不知道那是什么。它不会通过该WaitForExit方法。

FFmpeg:

-ss 0 -i output.mp4 -t 10 -an -y test.mp4
Run Code Online (Sandbox Code Playgroud)

C# 代码:

using (Process process = new Process())
{
     process.StartInfo.UseShellExecute = false;
     process.StartInfo.RedirectStandardOutput = true;
     process.StartInfo.RedirectStandardError = true;
     process.StartInfo.FileName = FileName; // ffmpeg.exe
     process.StartInfo.Arguments = Arguments; //-ss 0 -i output.mp4 -t 10 -an -y test.mp4
     process.Start();
     process.WaitForExit(); // stops here and waits

     return process.StandardOutput.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)

编辑:

添加-loglevel quiet到我的ffmpeg查询使我的问题消失。为什么?如何在不添加的情况下获得相同的结果-loglevel quiet

c# ffmpeg

2
推荐指数
1
解决办法
879
查看次数

NetSuite-PHP搜索可获取1000多个记录

我正在使用NetSuite PHP Toolkit(2013_2版)。而且我能够成功进行“保存搜索”和“客户搜索”。除此之外,我的实际客户总数为1800,而我从NetSuite呼叫中仅获得1000条记录。因此,我需要知道,是否可以使用PHP工具包在NetSuite调用中获取所有记录(超过1000条)。我的代码基本上是这样的...

$service = new NetSuiteService();
$search = new CustomerSearchAdvanced();
$search->savedSearchId = "115"; //internal ID of saved search

$request = new SearchRequest();
$request->searchRecord = $search;

$searchResponse = $service->search($request);
Run Code Online (Sandbox Code Playgroud)

提前致谢!!

php soap netsuite suitetalk

1
推荐指数
1
解决办法
2086
查看次数

删除无键表中多余的重复条目

我有下表,并希望删除所有重复的行。我创建了一个列dup,用于计算重复项的数量。

delete from table where dup>1 将删除重复项的所有条目,但我仍希望表中保留1个条目。

ISIN         RIC      BLOOMBERG dup
-----------------------------------
LU1681046006 CWEm.BS  CWEM EB   2
LU1681046006 CWEm.BS  CWE EB    2
LU1681046006 CWEm.BS  CWEM EB   2
LU1681046006 CWEm.BS  CWE EB    2
LU1681046006 CWEm.CHI CWEM IX   2
LU1681046006 CWEm.CHI CWE IX    2
LU1681046006 CWEm.CHI CWEM IX   2
LU1681046006 CWEm.CHI CWE IX    2
LU1681046006 CWE.MI   CWE IM
LU1681046006 WDNR.DE  WDNR GY
Run Code Online (Sandbox Code Playgroud)

因此,结果表应如下所示:

ISIN         RIC      BLOOMBERG dup
-----------------------------------
LU1681046006 CWEm.BS  CWEM EB   2
LU1681046006 CWEm.BS  CWE EB    2
LU1681046006 CWEm.CHI CWEM IX …
Run Code Online (Sandbox Code Playgroud)

k kdb

0
推荐指数
1
解决办法
79
查看次数